mat*_*att 7 hash hash-code-uniqueness unique sha256
如果我使用比数据(例如sha-256)更大的字节大小的散列算法散列大小受限的类似数据(例如社会安全号),那么散列将保证与单词相同的唯一性级别.原始数据?
您始终可以创建自定义哈希,以保证唯一性.对于已知域中的数据(如SSN),练习相对简单.
如果您的目标哈希值实际上比您正在哈希的位数更多,则哈希只是将输入值映射到其中一个可用输出值.这将是一个简单的线性映射,从输入值作为多字节整数到输出作为多字节整数.
当您的目标哈希值比正在哈希值的位数少时,则无法保证唯一性.
散列冲突的概率与输入字符串的大小无关(除非它指示您需要保持唯一性所需的输入数量).当您使用完美散列算法散列0和1时,可能会发生散列冲突,尽管可能性为1 /(2 ^位长).在SHA-256的情况下实际上是零.
哈希碰撞是生日悖论的问题.在256位散列的情况下,两个输入之间的冲突概率完全取决于输入的数量,并且是:
如果您使用的是 SHA 之类的加密哈希,那么简短的答案是肯定的。