2009-08-19 27 views
1

加拿大的SIN等同於美國的SSN。如何檢查(加拿大)SIN是真正的SIN?

我是不是要求算法檢查是否有任何給定的9位數字通過Luhn validation的驗證。

我的問題是,一些用戶有足夠的智慧來生成一個假SIN可以通過上面的驗證,但SIN不會在政府數據庫中。

因此,我所問的是我怎麼能檢查給定SIN數量是正版,並通過加拿大政府實際發行。是否有任何數據庫/服務可以獲得,或者是否有任何特殊算法用於驗證?

非常感謝您提前。

+7

如果有一個算法,它可以被用來生成假的SIN。 – 2009-08-19 18:43:07

+0

@ Paul Tomblin:有一種算法,它被用來產生假SIN。這就是爲什麼我問是否有替代數據源來驗證。 – 2009-08-19 18:50:09

+0

@保羅 - 我認爲,更大的擔憂是身份盜用。 – 2009-08-19 18:54:43

回答

4

這似乎是極不可能公開的數據。您可能需要成爲政府機構才能查看SIN列表。

而且,如保如上所述,驗證一個SIN是否爲可能的候選,也可以用於製造不屬於通過蠻力合法的罪任何算法。

+0

服務不一定需要向公衆公開SIN以驗證它是否存在。然而,即使這種服務存在,訪問它仍然可能不得不加以控制。 – wcm 2009-08-19 19:00:09

+1

@wcm:如果這樣的服務存在,所有你需要做的就是運行保羅提到的算法,查詢依次對每個SIN和吸積有效者的名單。由於只有10億個可能的9位數的SIN,其中至少有一些不能是合法的SIN。 – 2009-08-19 19:13:01

2

作爲一個補充說明,以約翰和保羅的回答。如果有一個生成SIN的算法和一個指定SIN的數據庫,你可以將兩者結合起來搜索並以相當短的順序找到一個真正的SIN,從而可以收集所有有效SIN的列表。在僞代碼的方式,你可以使用...

foreach(SIN in SINGenerator) 
{ 
    if(govtdatabase.verify(SIN) == true) 
    { store into file as valid SIN } 
} 
1

我不知道加拿大,但在這裏,在荷蘭這樣的Web服務只提供給政府相關機構,保險公司,醫療服務提供商等

我現在正在使用這種服務。這不僅僅是數字驗證。它允許根據數字檢索姓名,地址,出生日期等。

這不太可能是公開的。 See also this privacy FAQ。閱讀。它還包含有關SIN的有效用途的信息。

2

已經罪惡工作,我不知道,有一些相關性開始3號SIN和人的年齡之前。另外,還有一些驗證規則很像信用卡號碼(您已經注意到了)。

用這種說法爲什麼使用SIN號碼?這是一個非常重要的信息 - 如果你有別人的SIN號碼,你實際上是他們 - 並且在任何情況下都不應該被任何人使用,除了政府相關的目的!

其次,如果你有SIN號碼的合法使用,你熟悉PIPEDA?如果不是,你應該是!

+0

我正在爲一家金融機構的項目工作。客戶有一些虛假的SIN滑落,現在他們希望能夠識別和驗證不是政府發佈的假SIN。 – 2009-08-19 19:09:09

+0

您是否問過金融機構如何驗證SIN?他們應該知道他們如何使用這些信息...... – 2009-08-19 19:12:05

1

你在安全功能中要求退出什麼; 您的客戶必須註冊代表客戶與稅務公司CRA(加拿大)或Irs(美國)。您的客戶將可以訪問政府網站。根據要求輸入罪,它會告訴你(1)如果有效,(2)如果你有沒有權利對犯罪信息 - 間接驗證,或者(3)訪問,如果你的代表客戶端現在被立案因爲有罪的問題。

請注意,這不是政府網站的預期用途,因此可能會引起他們的憤怒,但會起作用。