マイナンバーのチェックデジット確認

(更新日: 2015/12/29)

マイナンバーのチェックデジットを確認する必要があったのでPHP関数を作りました。

個人番号

マイナンバー(個人番号)のチェックデジットの計算式は法律に記載されています。

(検査用数字を算出する算式)
第五条  令第八条の総務省令で定める算式は、次に掲げる算式とする。
算式
11―(n=1(シグマ)11(P×Q))を11で除した余り)
ただし、(n=1(シグマ)11(P×Q))を11で除した余り≦1の場合は、0とする。
算式の符号
 個人番号を構成する検査用数字以外の十一桁の番号の最下位の桁を1桁目としたときのn桁目の数字
 1≦n≦6のとき n+1 7≦n≦11のとき n―5
 これを使って入力されたマイナンバーが妥当であるか確認できます。形式として正しいことだけチェックするのでマイナンバーが本人の物であるか、実際に利用されている物なのか、などは当然確認できません。

出力

問題ないと思いますが、さっと作ったので問題があれば教えてください。

 

法人番号

コード中に法人用の法人番号のチェックデジットのアルゴリズムは異る、と記載しています。法人番号のチェックデジットはこの法律で定められています。

(検査用数字を算出する算式)
第二条  令第三十五条第一項に規定する財務省令で定める算式は、次に掲げる算式とする。
算式
9―((n=1(シグマ)12(Pn×Qn))を9で除した余り)
算式の符号
Pn 令第三十五条第一項に規定する基礎番号の最下位の桁を1桁目としたときのn桁目の数字
Qn nが奇数のとき 1、nが偶数のとき 2

法人番号は既に12桁の数字が割り振られています。これの最後に1桁のチェックデジットを足した13桁の数字が新しい法人番号になります。

今すぐ必要ではなかったので確認していません。問題がある場合は教えてください。

追記:チェックデジットは最後という思い込みがあったので、最後がチェックデジットとして処理していましたが最初として処理するよう修正しました。

Comments

comments

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です