0

美国的纳税人必须拥有某种税号。

它必须是社会安全号码个人纳税人识别号码(对于外国人,这样他们就可以被征税而不会被驱逐出境)

或公司的雇主识别号码

如果您按照维基百科的这些链接,很容易看到这些数字中有(或者在社会安全号码的情况下)有相当数量的结构。如此之多,以至于如果您有地区和生日,您通常可以猜出社交。有一个 php代码片段来生成和验证利用这些模式的 SSN。

给定一个包含 SSN 和 EIN 的数据库,是否存在可以区分和验证 SSN EIN 和 ITIN 的预先存在的算法(希望是库)?我希望在这里有一个简单的正则表达式,但这可能太有希望了。

有些公司可以以一定的可靠性做到这一点,但我还没有找到一个公开的实现,更不用说有一些数据来显示它在验证过程中的可靠性。

4

1 回答 1

4

有一个用于 SSN 的 PHP 库,但最后一次更新是 2013 年。它严重依赖High Group List ,现在SSN 是随机的,因此不再使用。

我不知道有任何处理 SSN、ITIN 和 EIN 的库。您可能需要查阅此 Django 字段以获取有关仅验证 SSN 的复杂性的信息。一些复杂性来自多年来的SSN 滥用,这导致某些数字无效,使得正则表达式非常具有挑战性,而简单的正则表达式是不可能的。

ITIN 必须以 9 开​​头,但在 2013 年 IRS 更改了哪些范围是有效的。否则,它们看起来就像 SSN。

EIN 和 SSN 之间只有两个区别。首先,EIN 分组为 xx-xxxxxxx,SSN 为 xxx-xx-xxxx。第二个是 EIN 有一个有效前缀列表因此如果提供的 EIN 没有有效前缀,则可以确定它是无效的。EIN 过去也更具地理性,但已经集中化,消除了地理意义。最终,您可以区分 EIN 和 SSN 的唯一方法是,如果您要求将它们格式化为破折号,则验证前缀。

于 2017-03-16T20:35:30.087 回答