Java AES 暗号化を使用して、受信者に送信されるデータを暗号化しています。各受信者には、受信者と私が知っている独自のキーがあります。
アイデアは、無料で入手できる AES 復号化ツールを使用してデータを復号化できるというものです。
これが私のコードです:
public class AESencrypt {
private static final String ALGO = "AES/CBC/PKCS5Padding";
private static final byte[] keyValue = new byte[]{'T', 'h', 'e', 'B', 'e', 's', 't', 'S', 'e', 'c', 'r', 'e', 't', 'K', 'e', 'y'};
private static byte[] iv = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
public void String encryptToFile(String filename, String data) throws Exception {
Key key = new SecretKeySpec(keyValue, "AES");
Cipher c = Cipher.getInstance(ALGO);
IvParameterSpec ivspec = new IvParameterSpec(iv);
c.init(Cipher.ENCRYPT_MODE, key, ivspec);
byte[] encVal = c.doFinal(data.getBytes());
FileOutputStream fileOutputStream = new FileOutputStream(filename);
fileOutputStream.write(encVal);
fileOutputStream.close();
}
public static void main(String[] args) throws Exception {
encryptToFile("foo.aes", "hellothere");
}
}
}
これを確認するために、オンライン AES 暗号化 / 復号化ツールを使用してサンプル データを復号化しました (正常に機能しました!)。
今、無料の AES 復号化ツールを使用して、受信者がオンライン ツールを使用せずに PC 上のデータを復号化できるようにしたいと考えています。ここからフラストレーションが始まります。
さまざまな AES 復号化ツールのインストールとテストを開始しました。キーを慎重に入力し、CBC アルゴリズムを選択し、ファイルを選択して「復号化」をクリックしましたが、どのツールもサンプル ファイルを復号化できませんでした。foo.aes
それらはすべてエラーで失敗し、あるケースでは、ゼロバイトの空のファイルが返されました。
少なくとも 4 つの異なる AES 暗号化/復号化ツールでこれを試しましたが、いずれもファイルを復号化できなかったため、コードに問題がある可能性があると思いました。
- 暗号AES
- AES暗号
- 高度な AES エンクリプター
- Cr!ptAES
誰かが私のコードを見ることができれば、大歓迎です。
あるいは、上記のコードで動作する AES デクリプター ツールがあるかもしれません。