jp3cki/mynumber

v1.0.0 2017-01-16 18:55 UTC

This package is auto-updated.

Last update: 2024-09-19 06:05:29 UTC


README

MyNumber-PHP 是一个用于验证マイナンバー(个人编号)或生成模拟数据的 PHP 库。以 MIT 许可证提供。

用法

环境

  • PHP 5.3.3 以上(越新越好)

准备

  1. 如果尚未设置,请使用 Composer 使其可用。具体方法请参阅 Download Composer

  2. 如果您当前源代码(项目)未使用 Composer,请执行以下命令。

    php composer.phar init

    您会收到关于您的源代码(项目)的一些问题,请随意回答。完成后,将生成 composer.json 文件。

  3. 通过 Composer 安装 jp3cki/mynumber

    • 仅用于开发时(例如仅用于生成测试数据)

      php composer.phar require --dev jp3cki/mynumber
    • 用于生产环境

      php composer.phar require jp3cki/mynumber
  4. 现在您已经准备好了。

有关详细信息,请参阅 Composer 网站或 Composer 解说网站。

另外,在使用通过 Composer 安装的库等时,请在您的程序的开头部分使用 requireinclude 请求 vendor/autoload.php

<?php
require_once(__DIR__ . '/vendor/autoload.php');

使用

输入值的验证

マイナンバー的最后一位(最右边)是校验位。

jp3cki\mynumber\MyNumber::isValid() 接受由 12 位数字组成的字符串,并确认校验位是否正确。

<?php
use jp3cki\mynumber\MyNumber;

require_once(__DIR__ . '/vendor/autoload.php');

$tests = array(
    // 正しい https://gist.github.com/ninoseki/a7e59bb74202a5252baf
    '895980423139',
    '436673173767',
    '430792811528',
    '107611545184',
    '964041141335',
    '044580705690',
    '439023617171',
    '680557982222',
    '335790979402',
    '763625921000',

    // 壊れている https://gist.github.com/ninoseki/b179215570d7605ce03f
    '828731078542',
    '430663651143',
    '211421187381',
    '627852730078',
    '693415034651',
    '189518719745',
    '105892595337',
    '491136797254',
    '345537562761',
    '348049767367',
);

foreach ($tests as $myNumber) {
    if (MyNumber::isValid($myNumber)) {
        echo "{$myNumber} is a valid ID\n";
    } else {
        echo "{$myNumber} is not a valid ID\n";
    }
}

创建模拟数据

jp3cki\mynumber\MyNumber::generate() 会随机生成一个校验位正确的(理论上存在的)号码。

由于マイナンバー本身只有 1011 = 1000 亿种可能性,因此即使在完全随机生成的情况下,生成的マイナンバー也可能在实际运行时点已经存在。

<?php
use jp3cki\mynumber\MyNumber;

require_once(__DIR__ . '/vendor/autoload.php');

for ($i = 0; $i < 10; ++$i) {
    echo MyNumber::generate() . "\n";
}

LICENSE

The MIT License (MIT)

Copyright (c) 2015 AIZAWA Hina <hina@bouhime.com>

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

变更日志

  • 尚未发布

备注

  • 版本号遵循 语义版本控制
    • 对于 v1.0.0
      • v1.0.1 仅是功能添加等操作,仅进行错误修正的发布。此版本始终推荐使用。
      • v1.1.0 进行了功能添加,但不会影响现有 API。通常推荐使用此版本。
      • v2.0.0 是破坏 API 兼容性的发布。请参阅 CHANGELOG。
    • 在 composer 的版本指定中,可以使用 ^~ 安全地指定。