【发布时间】:2013-09-11 02:59:58
【问题描述】:
如果我将散列值存储在数据库中,但被散列的原始值的长度是固定的(例如,始终为 4 个字符),这是否会损害散列函数的单向特性?
更准确地说,我有敏感字符串,然后我将其加密并存储在数据库中。为了搜索这些字符串,我不想解密数据库中的每个条目,所以我还将字符串的前 4 个字符的哈希值存储在另一列中。当我想搜索数据库时,我会生成搜索词前 4 个字符的哈希值,并将其与存储的哈希值进行比较,以查找哪些条目匹配或可以匹配,然后解密这些条目以检查冲突并获取其余部分与该条目相关的数据。
我担心的是,由于攻击者知道被散列的字符串的长度是恒定的(4 个字符),他/她只需要生成一个包含所有可能的 4 个字母字符串及其散列和查找的表存储在我的数据库中的散列值(从而放弃原始敏感字符串的前 4 个字符)。
【问题讨论】:
标签: database security encryption hash