ファイルの中身自体を保護するために、暗号化を行うのがおすすめです。Cipherクラスを利用してAES暗号化を実装できます。
KeyGenerator keyGen = KeyGenerator.getInstance("AES");
keyGen.init(128);
SecretKey secretKey = keyGen.generateKey();
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.ENCRYPT_MODE, secretKey);
byte[] encryptedData = cipher.doFinal("This is hidden content.".getBytes());
FileOutputStream fos = new FileOutputStream(file);
fos.write(encryptedData);
fos.close();
このコードは、AES (Advanced Encryption Standard) を用いたデータの暗号化を行っています。具体的な処理について一行ずつ説明します。
KeyGeneratorのインスタンス作成:javaKeyGenerator keyGen = KeyGenerator.getInstance("AES"); keyGen.init(128);KeyGenerator.getInstance("AES")でAES暗号方式に対応した鍵生成器を取得。keyGen.init(128)で鍵長を128ビットに設定。
- 鍵の生成:java
SecretKey secretKey = keyGen.generateKey();- ここで実際の暗号鍵 (
SecretKey) を生成します。この鍵は暗号化と復号に使用されます。
- ここで実際の暗号鍵 (
- 暗号化モードの初期化:java
Cipher cipher = Cipher.getInstance("AES"); cipher.init(Cipher.ENCRYPT_MODE, secretKey);Cipher.getInstance("AES")でAES暗号方式を使用するための暗号化器 (Cipher) を取得。cipher.init(Cipher.ENCRYPT_MODE, secretKey)で暗号化モードに設定し、先ほど生成した鍵を使用します。
- データの暗号化:java
byte[] encryptedData = cipher.doFinal("This is hidden content.".getBytes());doFinal()メソッドで、文字列"This is hidden content."を暗号化し、暗号化されたバイト配列 (byte[]) を取得。.getBytes()は文字列をバイト配列に変換するメソッドです。
- 暗号化されたデータをファイルに保存:java
FileOutputStream fos = new FileOutputStream(file); fos.write(encryptedData); fos.close();FileOutputStreamを使用して、暗号化されたデータを指定されたファイル (file) に書き込みます。- 最後に
fos.close()でストリームを閉じます。
このプログラムは、以下を実現しています:
- AES暗号方式を使用して文字列を暗号化。
- 暗号化結果をバイナリデータとしてファイルに保存。




コメント