Java プログラムメモ


トップ

秘密鍵暗号化方式で暗号化

javax.crypto パッケージを使って、文字列を暗号化して同じ鍵を使用して復号化します。 秘密鍵の生成には KeyGenerator の generateKey() を使用し、暗号化、復号化には Cipher の doFinal を使用します。

以下にアルゴリズムに AES を使用した場合の暗号化、復号化の実装例を書きます。

コード記述例

public static void main(String[] args) { try { SecretKey key = KeyGenerator.getInstance("AES").generateKey(); Cipher aes = Cipher.getInstance("AES"); HexDumpEncoder enc = new HexDumpEncoder(); byte[] text = "暗号化テスト".getBytes(); System.out.println(enc.encode(text)); // 暗号化 aes.init(Cipher.ENCRYPT_MODE, key); byte[] encryptText = aes.doFinal(text); System.out.println(enc.encode(encryptText)); // 複合化 aes.init(Cipher.DECRYPT_MODE, key); byte[] decryptText = aes.doFinal(encryptText); System.out.println(enc.encode(decryptText)); } catch (Exception e) { e.printStackTrace(); } }

出力結果

上から順に 元テキスト → 暗号化配列 → 復元されたテキスト です。
0000: 88 C3 8D 86 89 BB 83 65 83 58 83 67 0000: EF A2 F1 18 3A B6 7D 16 7B 89 F9 E3 27 4B 48 F4 ....:.......'KH. 0000: 88 C3 8D 86 89 BB 83 65 83 58 83 67

SEO [PR] おまとめローン Windows7 冷え性対策 動画 掲示板 レンタルサーバー ライブチャット SEO