繁体   English   中英

对称AES加密和解密在任何Java版本上返回相同的值,并且支持Java 6,并且无需使用任何外部库

[英]Symmetric AES Encryption and Decryption returning same value on any Java versions and supporting Java 6 and with out using any external libraries

我想在任何版本的Java上都获得相同的加密值,并且代码应支持Java 6,并且无需使用任何外部库。 我是Java和密码学的新手。 我真的很感激有人的帮助。 提前致谢。

如果用相同的密钥多次加密相同的明文,那么您将获得不同的结果。 这是一种安全属性,并且是由于随机初始化向量或随机数引起的。

唯一不使用IV或随机数的流行操作模式是在所有Java版本中都可用的ECB模式。 如果使用该模式,则在所有Java版本中始终会得到相同的结果。

ECB模式不是很安全,因此不应使用。

如果您只需要一个与许多Java版本兼容的实现,则可以使用JNCryptor 这是非常安全的。 由于您无法比较随机模式的密文,因此您将需要在一个Java版本中进行加密,而在另一个Java版本中进行解密(请不要忘记另一个方向)。

无需使用任何外部库

密码学很困难,您说您是密码学的新手。 如果您想使用它而不是学习,则需要使用经过审核的安全库,而不是尝试编写自己的库。 库在那里可以帮助您生成更安全的代码。

当然,大多数库都是开源的,因此您可以将其代码复制到项目中,然后就没有任何依赖关系,但是在执行此操作之前,请检查它是否与库的许可证兼容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM