2012-02-11 23 views
0

我正在尋找一種算法,可以創建類似於預付費電話卡的安全唯一隨機數。我確實看過Generating a unique 15 digite Pin code from a 10digit number,但它讓我感到困惑的不僅僅是讓事情更清楚。向那些貢獻自己的時間來回答這些問題的人道歉,這一定是我的智慧放棄它的。如何生成與預付費電話卡類似的唯一PIN號碼PIN

任何人都可以請指導一個算法或鏈接,我可以得到更多的信息嗎?謝謝。

+0

請參閱關於在問題中包含簽名的常見問題解答。 – 2012-02-11 00:18:52

+0

對您的唯一號碼中的位數的任何要求? – Gilles 2012-02-11 00:22:17

+0

「安全」抵禦什麼威脅? – 2012-02-11 03:21:13

回答

2

查看HMAC,並將原始10位數字視爲消息,最後5位數字以前10位的HMAC開頭,作爲該消息的消息驗證代碼。這裏是文章的一大塊:

一個業務,遭受攻擊者放置欺詐性的互聯網訂單可能會堅持,所有的客戶存放一個祕密密鑰與他們。除訂單外,客戶還必須提供訂單的HMAC摘要,並使用客戶的對稱密鑰進行計算。知道客戶對稱密鑰的企業可以驗證訂單是否來自所述客戶並且沒有被篡改。

+0

所以出的數字包含一個數字+某種可用於驗證它的祕密散列。 在文章片段中提到的註冊用戶的情況下,對稱密鑰可能已被共享,因此不需要將密鑰嵌入到消息本身中,但是在電話卡引腳號碼的情況下,例如客戶可能只是任何隨機的人,關鍵都需要嵌入數字本身。所以我假設這個數字的安全性是由用於在消息中嵌入密鑰的算法控制的? – Suman 2012-02-13 22:21:14

+0

用戶通過顯示完整的15位數字來驗證自己。在這個系統中,用戶不需要知道並且不應該知道如何生成號碼。系統可以記住HMAC並從中檢查5個最終數字是從前10個數字生成的,還是隻記住它生成的15位數字。如果這些號碼每個都與特定的帳戶相關聯,例如說要留下多少信用卡,無論如何可能必須這樣做。當然,如果攻擊者獲得HMAC密鑰,他們可以預測15位數字,這是你不想要的。 – mcdowella 2012-02-14 05:19:34