stocker4all / luhn-mod-n
luhn-mod-n 是一个用于生成和验证 luhn mod n 校验和的非常简单的解决方案。可能的基数(n 的值)介于 2 和 36 之间。Luhn mod 10 是从信用卡号校验和中广为人知的。但在不同的基数中,拥有这种校验和功能也可能很有用。
v1.0
2024-01-25 12:32 UTC
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.48
- phpro/grumphp-shim: ^2.4
- phpstan/extension-installer: ^1.3
- phpstan/phpstan: ^1.10
- phpstan/phpstan-deprecation-rules: ^1.1
- phpstan/phpstan-phpunit: ^1.3
- phpstan/phpstan-strict-rules: ^1.5
- phpunit/phpunit: ^10
README
luhn-mod-n
是一个用于生成和验证 luhn mod n 校验和的非常简单的解决方案。可能的基数(n 的值)介于 2 和 36 之间。Luhn mod 10 是从信用卡号校验和中广为人知的。但在不同的基数中,拥有这种校验和功能也可能很有用。
基于 2 的示例
输入
1001001100101100000001011010010
输出(带有校验和的数字)
10010011001011000000010110100100
基于 10 的示例
输入
1234567890
输出(带有校验和的数字)
12345678903
基于 16 的示例
输入
499602d2
输出(带有校验和的数字)
499602d2f
基于 36 的示例
输入
kf12oi
输出(带有校验和的数字)
kf12ois
安装
您可以使用 Composer 将此软件包添加到项目中
composer require stocker4all/luhn-mod-n
使用示例
<?php
use S4A\LuhnModN\LuhnModN;
include 'vendor/autoload.php';
// Base 10 example
$luhnModN = new LuhnModN();
$number = 1234567890;
// Generate checksum and return it concatenated to given number
$numberWithChecksum = $luhnModN->createChecksum($number, 10);
echo $numberWithChecksum."\n";
// Generate checksum and return only checksum
$onlyChecksum = $luhnModN->createChecksum($number, 10, false);
echo $onlyChecksum."\n";
// Verify the checksum
if ($luhnModN->hasValidChecksum($numberWithChecksum, 10)) {
echo "Valid checksum\n";
}
此示例将生成以下输出
12345678903
3
Valid checksum
测试
在 tests 目录中提供了一些非常基础的测试。通过 composer install --dev && vendor/bin/phpunit 运行它们。
许可证
luhn-mod-n
使用 MIT 许可证