なぜ、世間は、ID番号に意味づけするのだろう。
IDは無味乾燥な連番でイイとおもうんです。
IDの数字に意味をもたせるのは、「ユーザーインターフェース」であって、それ自体が個人情報になっている・・・
免許証番号に持たされた意味
免許証番号は、
公安番号 | 取得年 | 個人固有 | チェック デジット |
再発行 回数 |
|||||||
1 | 0 | 1 | 4 | 9 | 9 | 9 | 9 | 9 | 9 | X | 0 |
数字に意味があるなんて、どうかしてるぜ。
人口の少ない県(和歌山、島根、宮崎、高知)とかは、年間の取得人数なんて1万人程度だろうから、総当りしても1万通りくらいしかない。これって大問題。
これだけの個人情報が含まれるわけですよね。ほんの少ししだけなのですが、個人情報が含まれるわけですよね。
どうして、このような番号を未だに採用する意味があるのだろうか。
免許証はICカード化されていて、情報は、ICカードの暗証番号が二段階で設定されているのね。
この番号に更に、個人情報を紐付けるとか、どうかしてる。
個人情報を云々いうまえに、これらの情報を公開情報と紐付けてどんどん保存されている現状は怖いですよね。
免許証番号から、芋づる式に個人の信用情報とかわかるしね。免許証を写真で取れば、他人になりすまして、カード発行できるしなぁ。
番号を「変更できない」点も問題
免許証を紛失して、免許証番号を他人に知られたとしても、その免許証を「変更する」ことは現実的じゃない。すべての運転免許を取得し直すか、数年に一度の「うっかり失効」をするしかない。
つまり、住所氏名と同じくらいの重要な扱いが求められるんだけど、カジュアルに「免許証番号」を控える機関があって困りますよ。
12桁の番号をパースする。
この数字、「意味がある」ので、処理する関数をパパっと作っておいた。
チェックデジットについて
仮に、免許証番号が AB CD EFGH IJ K L であるとすると
K がチェックディジット
まず、A ~ J の各値と 次のウェイト (5, 4, 3, 2, 7, 6, 5, 4, 3, 2) を
それぞれ掛け合わせて、その合計を求める。
X=Ax5 + Bx4 + Cx3 + Dx2 +Ex7 + Fx6 + Gx5 + Hx4 + Ix3 + Jx2
その合計 X を 11 で割った余りを求め、更にこの値を 11 から引きます。
Y = 11- mod(X,11) (modは剰余を求める関数)
この結果 Y が 11場合には、チェックディジットは 1となり
K = 1
Y が 10場合には、確認してないから不安だがたぶん0 となり
K = 0
結果が一桁であれば、それがチェックディジットになり
K = Yの値
参考資料
2016-10-19
大阪と京都が数字違ってたみたいなので修正