我正在使用 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 解密器工具可以与上面的代码一起使用。