stocker4all/luhn-mod-n

luhn-mod-n 是一个用于生成和验证 luhn mod n 校验和的非常简单的解决方案。可能的基数(n 的值)介于 2 和 36 之间。Luhn mod 10 是从信用卡号校验和中广为人知的。但在不同的基数中,拥有这种校验和功能也可能很有用。

v1.0 2024-01-25 12:32 UTC

This package is auto-updated.

Last update: 2024-09-25 15:23:53 UTC


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 许可证