首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对称AES加密和解密在任何Java版本上返回相同的值,支持Java 6,不使用任何外部库

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

Stack Overflow用户
提问于 2017-05-03 20:05:28
回答 1查看 175关注 0票数 0

我想在任何版本的Java上获得相同的加密值,并且代码应该支持Java6,并且不使用任何外部库。我真的很感激有人能帮我。提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2017-05-04 02:48:28

如果您使用相同的密钥对相同的明文进行多次加密,则会得到不同的结果。这是一个安全属性,这是由于随机化的初始化向量或随机数造成的。

唯一不使用IV或现时值的流行mode of operation是ECB模式,它在所有Java版本中都可用。如果您使用该模式,则在所有版本的Java中都将始终获得相同的结果。

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

如果您只是需要一个跨多个版本的Java兼容的实现,那么您可以只使用JNCryptor。它非常安全。由于不能比较随机模式的密文,因此需要在一个Java版本中加密,在另一个版本中解密(不要忘记另一个方向)。

不使用任何外部库的

密码学很难,你说你是密码学的新手。如果你想用它学习以外的东西,你需要使用经过审查和安全的库,而不是试图编写你自己的库。这些库可以帮助您生成更安全的代码。

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43759580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档