跳至內容

盧恩算法

出自Taiwan Tongues 台語維基
這是此頁批准,以及是最近的修訂。

盧恩算法(英語:Luhn algorithm), 嘛叫做「模十」(Mod 十)算法,是一種簡單的校驗佮算法,一般用佇咧驗證身份識別碼,譬如講發卡行識別碼、國際行動裝置識別碼,美國國家提供商標識號碼,抑是加拿大社會保險號碼。該算法由 IBM 科學家漢斯 ・ 那個得 ・ 盧恩創造,專利佇一九五四年一月初六申請,一九六空年八月二十三號頒證,美國專利號兩百九十五堵空四十八。

該算法現在屬於公有領域並得著廣泛的應用,比如講 ISO / IEC 七千八百十二孵一。伊毋是一種安全的加密哈希函數,設計伊的目的只是防止意外出錯毋著毋是惡意攻擊。

是咧講

盧恩算法會通過校驗碼對一串數字進行驗證,校驗碼通常會予人加到這攕數字的尾溜,對得著一个完整的身份識別碼。

阮以數字「七十九石九千兩百七十三石九千八百七十一」做例,計算其校驗位,設校驗位為 X 並加添至數列末位,即七十九石九千兩百七十三石九千八百七十一 X:

一 . 就是踮校驗位開始,對正往倒爿,雙數位乘二(比如講,七 \ * 二=十四), 然後共兩位數字的個位相加(比如講,十:一 + 零=一,十四:一 + 四=五); 二 . 共得著的數字濫做伙(本例中得到六十七); 三 . 將數字的佮取模十(本例中得著七), 才閣用十去減(本例中得著三), 得著校驗位。

另外一種方法是:

一 . 就是踮校驗位開始,對正往倒爿,雙數位乘二,然後共兩位數字的個位相加; 二 . 計算所有數字的佮(六十七); 三 . 乘以九(六百空三); 四 . 取其他的位數字(三), 得著校驗位。

優缺點

盧恩算法會當發現某一位的錯誤。 盧恩算法差不多會當發現所有的因為鄰位上數字被交換產生的錯誤。 猶毋過,伊只會發現數字交換產生的錯誤中的十分之七,袂發現二十二 ↔ 五十五 , 三十三 ↔ 六十六抑四十四 ↔ 七十七。

參考文獻