Class Luhn

java.lang.Object
org.miaixz.bus.core.codec.Luhn

public class Luhn extends Object
Luhn算法,也称为“模10”算法,是一种简单的校验和(Checksum)算法,在ISO/IEC 7812-1中定义,校验步骤如下:
  1. 从右边第1个数字(校验数字)开始偶数位乘以2,如果小于10,直接返回,否则将个位数和十位数相加
  2. 把步骤1种获得的乘积的各位数字与原号码中未乘2的各位数字相加
  3. 如果步骤2得到的总和模10为0,则校验通过
Since:
Java 17+
Author:
Kimi Liu
  • Constructor Details

    • Luhn

      public Luhn()
  • Method Details

    • check

      public static boolean check(String text)
      校验字符串
      Parameters:
      text - 含校验数字的字符串
      Returns:
      true - 校验通过,false-校验不通过
      Throws:
      IllegalArgumentException - 如果字符串为空或不是8~19位的数字
    • getCheckDigit

      public static int getCheckDigit(String text, boolean withCheckDigit)
      计算校验位数字 忽略已有的校验位数字,根据前N位计算最后一位校验位数字
      Parameters:
      text - 被检查的数字
      withCheckDigit - 是否含有校验位
      Returns:
      校验位数字