对某些明文进行两次编码并获得相同的哈希

时间:2015-12-05 21:31:35

标签: java encryption aes

我的服务器会定期发送联系人列表。然后我需要编码并将哈希值存储在没有初始值的数据库中(只有哈希值)。如果我收到两次联系,则哈希必须与此相同。目前我想使用AES加密。要获得相同的哈希两次,必须使用相同的密钥和相同的初始化向量,这似乎非常不安全。其中一个解决方案可能是生成密钥和联系人。它比使用一个密钥和iv对所有联系人更好。这不好主意吗?你能建议另一个解决方案吗?

1 个答案:

答案 0 :(得分:1)

这取决于你想做什么

  • 存储联系人编码后检索清除数据,然后必须使用加密:例如AES

  • 或只是它们的一些痕迹,看看你是否已经拥有它们:那么哈希就足够了。这是不可逆转的。 SHA例如

您收到明确的数据吗?然后你必须做两个动作中的一个。

之后,你想用它做什么?

  • 加密数据,您可以解密

  • 使用哈希,你只能看到你是否再次收到它。

是整个数据,还是仅仅是某些部分? (例如密码)

用于散列:How to hash some string with sha256 in Java?