• 各种常用校验码算法


    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-余数为校验码。

    特点:性能极高,只能校验大部分数字错误。
  • 相关阅读:
    树链剖分
    后缀自动机
    莫队算法。
    线性递推BM模板
    笛卡尔积
    2019牛客暑期多校训练营(第三场) J LRU management 模拟链表操作
    线性基
    bitset 位运算
    Lindström–Gessel–Viennot lemma定理 行列式板子
    三角形
  • 原文地址:https://www.cnblogs.com/uip001/p/16313939.html
Copyright © 2020-2023  润新知