Package org.miaixz.bus.core.codec
Class Luhn
java.lang.Object
org.miaixz.bus.core.codec.Luhn
Luhn算法,也称为“模10”算法,是一种简单的校验和(Checksum)算法,在ISO/IEC 7812-1中定义,校验步骤如下:
- 从右边第1个数字(校验数字)开始偶数位乘以2,如果小于10,直接返回,否则将个位数和十位数相加
- 把步骤1种获得的乘积的各位数字与原号码中未乘2的各位数字相加
- 如果步骤2得到的总和模10为0,则校验通过
- Since:
- Java 17+
- Author:
- Kimi Liu
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic boolean校验字符串static intgetCheckDigit(String text, boolean withCheckDigit) 计算校验位数字 忽略已有的校验位数字,根据前N位计算最后一位校验位数字
-
Constructor Details
-
Luhn
public Luhn()
-
-
Method Details
-
check
校验字符串- Parameters:
text- 含校验数字的字符串- Returns:
- true - 校验通过,false-校验不通过
- Throws:
IllegalArgumentException- 如果字符串为空或不是8~19位的数字
-
getCheckDigit
计算校验位数字 忽略已有的校验位数字,根据前N位计算最后一位校验位数字- Parameters:
text- 被检查的数字withCheckDigit- 是否含有校验位- Returns:
- 校验位数字
-