我是一名网络开发人员,开始涉足密码学,所以请在这方面与我裸露...
假设我有一组从一些常见数据(即对多条记录的更改)生成的哈希值。有没有一种方法可以从主散列生成辅助散列,并根据主散列的生成方式将其与其他散列进行比较。例如...
plain text | hash | hint hash
----------------------------------------------
"USER:123:fName:Alice" | 92eb5ff.. | 3cd24
"USER:123:fName:alice!"| 1c77753.. | 3cd24
"USER:456:fName:Bob" | fee6ae2.. | 7d28e
"USER:456:fName:bob!" | 7775315.. | 7d28e
"USER:789:fName:Carl" | fec3ad7.. | 75315
请注意所有散列是如何唯一的,但提示散列与它们从中散列的记录 ID 匹配。因此,如果我根据纯文本和一些密钥生成这些哈希,即 genHash(plainText, keyText)。如果您只有散列,则可以仅通过提示散列关联哪些散列彼此相关。因此,如果我只有哈希,我仍然可以通过几个 getHintHash(hash) 调用找到它们的关联......
哈希表:
hash
---------
92eb5ff..
1c77753..
fee6ae2..
7775315..
fec3ad7..
带有提示哈希的哈希表:
hash | hint hash
----------------------
92eb5ff.. | 3cd24
1c77753.. | 3cd24
fee6ae2.. | 7d28e
7775315.. | 7d28e
fec3ad7.. | 75315
现在我有了唯一哈希之间的关系,而没有暴露生成它们的纯文本。这可能吗?请记住,散列函数得到了明文和“提示散列”可以基于的密钥......
genHash("USER:123:fName:Alice", "USER:123") -> 92eb5ff..