加拿大SIN相当于美国SSN。
我不要求算法检查任何给定的9位数字是否通过了Luhn validation的验证。
我遇到的问题是一些用户足够聪明,可以生成可以通过上述验证的假SIN,但SIN不会存在于政府数据库中。
因此,我要问的是我如何检查给定的SIN号码是否真实且实际由加拿大政府签发。您是否可以获得任何数据库/服务,或者您是否使用任何特殊算法来验证这一点?
非常感谢你。
答案 0 :(得分:4)
这似乎是极不可能公开的数据。您可能需要成为政府机构才能查看SIN列表。
另外,正如上面提到的那样,任何验证SIN是否是可能的候选者的算法也可以用于制造通过暴力不合法的SIN。
答案 1 :(得分:2)
作为约翰和保罗答案的补充说明。如果存在生成SIN的算法和分配的SIN的数据库,则可以将两者组合以搜索并以相当短的顺序找到真实SIN,从而允许您收集所有活动SIN的列表。以伪代码方式,您可以使用...
foreach(SIN in SINGenerator)
{
if(govtdatabase.verify(SIN) == true)
{ store into file as valid SIN }
}
答案 2 :(得分:2)
在我知道与SIN的起始3个数字和人的年龄有一定的相关性之前,我已经与SIN合作过。同样,有一些验证规则很像信用卡号(你已经注意到了)。
用那个说你为什么使用SIN号码?这是一个非常重要的信息 - 如果你有一个人的SIN号码你实际上是他们 - 并且在任何情况下都不应该被任何人使用用于政府相关目的!
其次,如果你有合法使用SIN号码,你熟悉PIPEDA吗?如果不是你应该!
答案 3 :(得分:1)
我不了解加拿大,但在荷兰这样的网络服务仅供政府相关组织,保险公司,医疗服务提供者等使用。
我现在正在使用这样的服务。这不仅仅是数字验证。它允许根据数字检索姓名,地址,出生日期等。
这种类似的东西不太公开。的 See also this privacy FAQ 即可。阅读。它还包含有关SIN的有效用途的信息。
答案 4 :(得分:1)
您要求退出安全功能; 您的客户必须在Taxation Corporation CRA(加拿大)或Irs(美国)注册代表客户。然后,您的客户将可以访问政府网站。根据要求输入罪,它会告诉您(1)是否有效,(2)如果您无权获得有关罪的信息 - 间接验证它,或(3)如果您代表客户现在存档对于有问题的罪。
请注意,这不是政府网站的预期用途,因此可能会引起他们的愤怒,但会起作用。