応答速度が非常に速いため、オンラインでの正確性の検証が行われないことは確実です。つまり、第 2 世代 ID カードには、誕生日と性別を示すためのよく知られたルールに加えて、別の自己検証ルールもあります。そこでページのソースコードを開いてみると、このjsは圧縮されていないことがわかり、ルールが理解しやすかったです。
科学をみんなに広めるためにここに来ました。火星かどうかは知りませんが(笑)。
次のコードはここからのものであり、著作権は Shanda に属します。もちろん、ウィキペディアでより詳細な紹介とアルゴリズムを見つけることもできます。
iW = new Array(7,9, 10,5 ,8,4,2,1,6,3,7,9,10,5,8,4,2,1);
iSum = 0
for( i=0;iiC = v_card.charAt(i);
iSum = iW[i];
iJYM = iSum % 11;
var sJYM = '';
if(iJYM == 0) sJYM = "1";
else if(iJYM == 1) sJYM = "0"; (iJYM = = 2) sJYM = "x";
else if(iJYM == 3) sJYM = "9";
else if(iJYM == 4) sJYM = "8"; if(iJYM == 5) sJYM = "7";
else if(iJYM == 6) sJYM = "6";
else if(iJYM == 7) sJYM = "5"; else if( iJYM == 8) sJYM = "4";
else if(iJYM == 9) sJYM = "3";
else if(iJYM == 10) sJYM = "2"; >var cCheck = v_card.charAt(17).toLowerCase();
if( cCheck != sJYM ){
return false; 一致しない場合は偽の番号です
}