2014-10-30 44 views
2

人類犯錯誤。 當你要求他們提供一些識別某個實體的唯一生成的ID時。 例如: 訂單A:有ID ABC1234 訂單B:有ID BCD1235 他們可以打錯別字,他們可以爲ex提供字符串:A123,B123,1 2 3,「訂單ID B 12/3」 然後自動系統挑戰識別原始ID。 我的問題是有沒有已知的算法/技術。生成我可以使用什麼算法來生成簡單的人類可讀的容錯字符串?

- 具有容錯功能的唯一人可讀ID(非sha或md5) 。您可以從字符子集中繼續解碼原始ID。 - 不區分大小寫

容錯的一個視覺示例是QR碼,當qr代碼的某些部分損壞時您仍然可以讀取該消息。

目標是避免像ex的工具/算法。彈性搜索,levenstein,並增加解碼原始ID的機會,即使客戶犯了錯字,也減少了提供其他「原始ID」的機會。

+0

需要一些適應任務,但這是一個很好的開始:http://en.wikipedia.org/wiki/Error_detection_and_correction – 2014-10-30 10:09:47

+0

那麼,什麼是問題? – matsjoyce 2014-10-30 10:11:05

+0

是否有任何已知的算法,它們會生成簡單的人類可讀字符串。哪些具有增加的冗餘將容忍人爲錯誤/錯別字。 – wmlynarski 2014-10-30 10:17:42

回答

1

除了糾錯,這個問題的有趣的部分是是否有代碼專門爲人類閱讀和轉錄。

RFC 3548中,爲避免在base32編碼(1和L,0和o)中使用容易混淆的字符,需要考慮一些問題。 Human-oriented base-32 encoding在這個概念上有一些變化。

對於音頻,PGP Word List旨在爲每個字節指定一個不同的單詞;它有兩個256字的列表,一個用於偶數字節,另一個用於奇數字節(因此可以檢測到丟失的字節或交換的字節),以幫助防止錯誤。

關於人性化的,可發音的ID可能很有趣,在可讀的密碼上工作(如Diceware)有一些相關的a discussion here on SO

Metafilter也有a discussion有關易於人類複製的代碼,提供了一些更有趣的參考。

相關問題