国家が国民ひとりひとりに番号を割り当てるマイナンバー制度。マイナンバーは11桁+1桁の検証用文字(チェックデジット)から構成され、合計12桁の数字が割り当てられることになっています。
このマイナンバーの数字が正しいかどうかを確認するRubyプログラム「validate_my_number」が公開されています。プログラムは総務省令第八十五号で定義された計算方法をRubyで素直に書き起こしたものなので、Ruby開発者ならば容易に理解することができると思われます。
以下のように検証します。
p validate_my_number(123456789010) #=> false
p validate_my_number(123456789011) #=> false
p validate_my_number(123456789012) #=> false
p validate_my_number(123456789013) #=> false
p validate_my_number(123456789014) #=> false
p validate_my_number(123456789015) #=> false
p validate_my_number(123456789016) #=> false
p validate_my_number(123456789017) #=> false
p validate_my_number(123456789018) #=> true
p validate_my_number(123456789019) #=> false
コメント欄によると、このプログラムを参考にして、C++版、Python版、Perl版、SQL版、Swift版、Golang版、Vim script版など多数のマイナンバー検証プログラムが公開されています。自分の好みのプログラミング言語でマイナンバーを検証してみたい方は参考にしてみてはいかがでしょうか。