我正在尝试使用给定 key 的 AES-128 算法加密字符串。
通过Java实现,我使用的解决方案here .
public static void main(String[] args) {
String key = "Bar12345Bar12345"; // 128 bit key
String initVector = "RandomInitVector"; // 16 bytes IV
System.out.println(encrypt(key, initVector, "System")));
}
结果:
encrypted string: iHvz04u8X7FPo7yagSLthA==
上面的结果不是我想要的,我希望ZJfsFFLjl6YS0Xys5OUVIA==
是System
的加密值。
就像下面的测试:http://aesencryption.net/
有什么建议吗?
最佳答案
您的 Java 代码正在使用 IV,而基于 Web 的加密并未使用 IV。出于安全目的,您应该使用随机 IV,以便使用相同 key 对相同数据进行两次加密不会产生相同的密文。但如果您的要求是获得与基于 Web 的结果相同的结果,请完全省略初始化 vector 。
关于java - 加密 AES 128,有 2 个不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45936446/