各種常用校驗碼演算法
阿新 • • 發佈:2022-05-27
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-餘數為校驗碼。特點:效能極高,只能校驗大部分數字錯誤。