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

Encode some plaintext twice and get the same hash

联系人列表将定期发送到我的服务器上。然后我需要对散列进行编码并将其存储在没有初始值(仅散列)的数据库中。如果我收到两次联系,哈希值必须相同。目前我想使用 AES 加密。要两次获得相同的哈希值,必须使用相同的密钥和相同的初始化向量,这似乎很不安全。可能的解决方案之一是生成密钥和来自联系人的 iv。这比对所有联系人使用一个键和 iv 更好。这是个坏主意吗?您能否提出其他解决方案?

这取决于你想做什么

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

  • 或者只是它们的一些痕迹以查看您是否已经拥有它们:然后散列就足够了。这是不可逆的。例如 SHA

您收到清晰的数据了吗?那么你必须做这两个动作之一。

之后,你想用它做什么?

  • 数据加密后,可以解密

  • 带hash的,只有再次收到才能看到

是全部数据,还是部分数据? (例如密码)

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