すずしんろぐ

人生大逆転を目指す、鈴木俊吾の成長日記

Java 任意の文字列をAESで暗号化・復号化する方法(Cipher)

time 2016/11/25

Tag:

プログラミング

こんばんは、すずしんです。

今日はJava暗号化復号化について勉強してみました。
JavaではCipherクラスを使うと、比較的簡単に暗号化・復号化ができるようです。
今回の記事では、Cipherクラスを使ってAESで暗号化・復号化する方法についてまとめておきます。

Cipherクラスを使った暗号化・復号化

Cipherクラスは、暗号化および復号化の暗号機能を提供しています。
利用可能な暗号化方式には複数(DES/AES/RSAなど)ありますが、今回はAESで暗号化・復号化することとします。

Cipherオブジェクトを生成するには、CipherのgetInstance()を呼び出して要求された変換の名前を渡します。
この変換というのが暗号化方式です。
変換は、以下の書式で記述されます。

今回は後者の方式を利用してみます。
AESでCipherオブジェクトを生成するには以下のようにします。

続いて、Cipherを初期化します。
init(int opmode, Key key)メソッドで暗号化(復号化)モードと秘密鍵(キー)を設定します。

その後、doFinal(byte[] input)メソッドを呼び出します。
inputには暗号化(復号化)したい文字列をバイト列に変換した値を与えます。
変換後のバイト列が返り値になります。

CipherManagerクラス

以上を踏まえて、Cipherクラスを使って文字列を暗号化・復号化する機能を持ったクラス(CipherManager)を作ってみました。
暗号化はencrypt()メソッド、復号化はdecrypt()メソッドを使います。
Base64によるエンコード・デコード処理も行っています。

サンプルプログラム

上記のCipherManagerクラスを使って、文字列を暗号化・復号化するサンプルプログラムを作成してみました。
変換元の文字列にはローマ字のみ、日本語のみの2パターンを試してみました。

実行結果

サンプルプログラムの実行結果は以下のようになりました。
きちんと暗号化と復号化がされているのが分かります。
暗号化後の文字列は何やらすごいことになっていますね。

follow us in feedly

down

コメントする




ファッション

プロフィール

鈴木俊吾(すずしん)

鈴木俊吾(すずしん)

大学卒業後、公務員を目指して試験に合格するも何故か辞退。その後は無職のまま特に何もない無駄な日々を過ごす。その内に精神状態がおかしくなり統合失調症を発症。今までに4度の入院を経験。ただいま絶賛人生のどん底を経験中。そんな私ですが、現在はフリーランスのプログラマーを目指して勉強を進めています。これまでにいくつかのアプリを公開しています。このブログは、人生大逆転を目指して奮闘する私の成長日記(?)です。どうか温かく見守って頂けるとありがたいです。 [詳細]

アクセスカウンター

since: 2016/11/15

人気記事

アーカイブ



ブログ村ランキング