String 来自字符串的不可逆唯一ID
这个问题听起来很常见,但不知何故,我找不到什么能帮我解决这个问题的方法……String 来自字符串的不可逆唯一ID,string,encryption,hash,unique,String,Encryption,Hash,Unique,这个问题听起来很常见,但不知何故,我找不到什么能帮我解决这个问题的方法…… 我觉得我缺少基本的哈希和加密知识 问题 假设我有一个电话号码(希望是唯一的)用作ID。 但我不想在公共接口中将我的私人号码用作ID。 我需要的是一个解决方案,它以一种方式混淆字符串,但仍然保持唯一性,这样当其他人使用该算法时,他将获得相同的ID 解决方案(?) 当输入不超过哈希输出长度,但仍然(几乎)不可能反转时,是否有一种哈希算法可以保证唯一性。 使用固定公钥RSA加密怎么样?输出应该是唯一的,但攻击者必须破解单个密钥
我觉得我缺少基本的哈希和加密知识 问题
假设我有一个电话号码(希望是唯一的)用作ID。
但我不想在公共接口中将我的私人号码用作ID。
我需要的是一个解决方案,它以一种方式混淆字符串,但仍然保持唯一性,这样当其他人使用该算法时,他将获得相同的ID 解决方案(?)
当输入不超过哈希输出长度,但仍然(几乎)不可能反转时,是否有一种哈希算法可以保证唯一性。
使用固定公钥RSA加密怎么样?输出应该是唯一的,但攻击者必须破解单个密钥才能解密所有数字。听起来是个坏主意 更新(基于答案)
显然,我正在寻找一种冲突概率较低的加密哈希算法。
现在(我已经睡了一会儿)想,通过这里我可以想到更多的事实:
- 无论如何,我必须处理碰撞。当我在没有进一步验证的情况下使用电话号码作为身份证时,任何人都可以说“这是我的”
- 彩虹桌永远是个问题。因为有一个可管理的电话号码数量,每个人都应该能够从电话号码生成哈希(我甚至不能使用秘密盐)。我唯一的可能是使用密集算法和salt,这使彩虹表独一无二李>
这么说吧:我可以决定使用散列。这样,没有人可以立即(不攻击它)知道使用了哪个电话号码。这似乎是重点所在 您基本上想要的是散列算法(如您的问题所述)。但棘手的是两条线:
- “确保输入不超过哈希输出长度时的唯一性”
- “但仍然(几乎)不可能逆转”