加密AES 128,具有2个不同的结果

时间:2017-08-29 10:13:33

标签: java encryption aes

我正在尝试使用给定密钥的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/

enter image description here

任何提议?

1 个答案:

答案 0 :(得分:1)

您的Java代码使用IV,而基于Web的加密未使用IV。出于安全目的,您应该使用随机IV,以便使用相同的密钥对相同的数据加密两次并不会产生相同的密文。但是,如果您的要求是从基于Web的结果获得相同的结果,请完全省略初始化向量。