gpt4 book ai didi

algorithm - SSN 的校验和

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:06:47 25 4
gpt4 key购买 nike

我有一个项目需要在前端验证美国社会保险号(格式 ddd-dd-dddd)。一个建议是使用散列算法,但考虑到使用的字符集很小 ( [0-9] ),这将是灾难性的。以高概率验证数字是否正确并允许后端执行最终的 == 是可以接受的。检查,但我需要做的比“有九位数字”等等要好得多。

在寻找更好的替代方案时,我发现了 ISBN 的验证校验和数字和 UPC .这些看起来是一个很好的替代方案,在前端成功的可能性很高。

鉴于这些限制,我有三个问题:

  1. 有没有办法证明像 ISBN13 这样的算法可以处理 SSN 这样的不同类别的数据,或者从安全角度来看它是否或多或少地符合目的?对于我的一个真实 SSN 的相当大的样本,校验和似乎是合理的,但我不愿意发现它们由于某种原因并不普遍适用。
  2. 这个问题是否已在某处解决,以便我可以简单地使用预先存在的验证方案来解决这个问题?
  3. 是否有任何此类算法也可以轻松验证 SSN 的最后 4 位数字而不放弃太多额外信息?

一如既往的感谢,乔


更新:

在回答下面的问题时,更详细一点。我将之前输入的客户 SSN 安全地存储在应用程序的后端。我需要做的是(尽最大可能)验证客户在这个页面上再次输入了相同的值。问题是我需要防止信息意外泄露给前端,以防某些未经授权的人能够访问该页面。

这就是为什么 MD5/SHA1 散列不合适的原因:也就是说,它可以用来推导完整的 SSN 而不会有太大困难。校验和(例如,模 11)几乎不向前端提供任何信息,但仍允许高度准确的字段验证。但是,如上所述,我担心它的普遍适用性。

最佳答案

维基百科不是这类事情的最佳来源,但考虑到这一点,http://en.wikipedia.org/wiki/Social_Security_number

Unlike many similar numbers, no check digit is included.

但在此之前它提到了一些广泛使用的过滤器:

The SSA publishes the last group number used for each area number. Since group numbers are allocated in a regular (if unusual) pattern, it is possible to identify an unissued SSN that contains an invalid group number. Despite these measures, many fraudulent SSNs cannot easily be detected using only publicly available information. In order to do so there are many online services that provide SSN validation.

关于algorithm - SSN 的校验和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6104546/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com