1. 程式人生 > 其它 >各種常用校驗碼演算法

各種常用校驗碼演算法

1.模10演算法(Luhn演算法)

常被用於銀行卡號,信用卡號等的校驗

1、從數列最後一位數字開始,奇數位乘以1,偶數位乘以2,如果乘以2的結果是兩位數,就將個位數和十位數相加返回。

2、把所有數字相加,得到總和。

3、整除10餘數為校驗碼。

特點:效能較高,校驗單個數字錯誤。

另外還存在一些該演算法的變型擴充套件,如偶數位乘以3,模數改變等,效果類似。

 

2. 模11演算法

 常被用於身份證號等的校驗

1、從數列最後一位數字開始,每一位乘以不同的係數n,根據係數規則的不同存在不同的模11演算法,例如係數從2至7迴圈。

2、把所有數字相加,得到總和。

3、整除11餘數為校驗碼,餘數為10時根據演算法不同可設定為字母或其他數字。

特點:效能較高,校驗單個數字錯誤或相鄰兩個數字換位錯誤。

3. 7DR,9DR演算法

 常被用於快遞單號等的校驗   1、把數列除以7或9   2、餘數為校驗碼   或  7或9-餘數為校驗碼。

特點:效能極高,只能校驗大部分數字錯誤。