kgalanos/check-afm

这是我的包 check-afm

1.0.0 2022-03-10 20:29 UTC

README

Packagist上的最新版本 测试 总下载量 希腊税号验证算法。该算法来自文章 https://tatief.wordpress.com/2008/12/29/%CE%B1%CE%BB%CE%B3%CF%8C%CF%81%CE%B9%CE%B8%CE%BC%CE%BF%CF%82-%CF%84%CE%BF%CF%85-%CE%B1%CF%86%CE%BC-%CE%AD%CE%BB%CE%B5%CE%B3%CF%87%CE%BF%CF%82-%CE%BF%CF%81%CE%B8%CF%8C%CF%84%CE%B7%CF%84%CE%B1%CF%82/

算法如下

从我们要检查的9位数中,取出最后一位。这就是我们需要与下面找到的单位数相匹配的校验位。

现在我们逐个取剩余的数字,从右边开始,将每个数字乘以2的幂,这个幂是数字在这个数字中的位置。例如,最右边的是2^1,第二位是2^2,第三位是2^3等等。我们将这些结果相加,得到总和。从这个和中取11的余数,再取这个余数除以10的余数。这个最终的数字必须与我们从税号中取出的数字相同。

以税号011111111(这是最容易处理的)为例。我们取出最后一位(即1),对于剩余的数字01111111,我们应用上面提到的方法,得到

1*2^1+1*2^2+1*2^3+1*2^4+1*2^5+1*2^6+1*2^7+0*2^8

=2+4+8+16+32+64+128+0=254

这个数除以11的余数是1,这个余数除以10的余数仍然是1

因此,这个税号是正确的,因为我们取出的最后一位数字与上面的余数相同

安装

您可以通过composer安装此包

composer require kgalanos/check-afm

用法

$skeleton = new Kgalanos\CheckAfm();
echo $skeleton->isValid('011111111');

测试

composer test

变更日志

请参阅CHANGELOG了解最近更改的信息。

贡献

请参阅CONTRIBUTING了解详细信息。

安全漏洞

请查阅我们的安全策略了解如何报告安全漏洞。

致谢

许可

MIT许可(MIT)。请参阅许可文件了解详细信息。