给定两个不同的字符串S1和S2(S1!=S2),是否可能:
SHA1(S1) == SHA1(S2)
是否为真?
- 如果是,概率是多少?
- 如果不是,为什么不是?
- 有没有输入字符串长度的上限,使得获取重复值的概率为0?或者说,计算SHA1(因此获取重复值的概率)是否独立于字符串的长度?
我想要达到的目标是对一些敏感的ID字符串进行哈希,可能会将其与某些其他字段(如父ID)连接起来,以便我可以使用哈希值作为ID(例如在数据库中)。
例子:
Resource ID: X123
Parent ID: P123
我不想暴露我的资源标识的本质,以免客户端看到“X123-P123”。
相反,我想创建一个新的列哈希(“X123-P123”),假设它是AAAZZZ。然后客户端可以使用id AAAZZZ请求资源,而不知道我的内部id等信息。