
由于響應(yīng)速度極快,可以肯定不是聯(lián)機(jī)校驗(yàn)正確性的,那也就是說(shuō)第二代身份證除了大家都知道的幾位表示生日和性別的規(guī)則以外,還有另外的自我校驗(yàn)規(guī)則。于是翻開(kāi)頁(yè)面源碼查看,發(fā)現(xiàn)這段js沒(méi)有被壓縮,所以規(guī)則也很好懂。
就在這里給大家科普下,不知道是不是火星了,呵呵。
以下代碼來(lái)自這里,版權(quán)歸盛大。當(dāng)然,你也可以在維基百科找到更詳細(xì)的介紹和算法。
代碼如下:
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;i<17;i++){
iC = v_card.charAt(i) ;
iVal = parseInt(iC);
iSum += iVal * iW[i];
}
iJYM = iSum % 11;
var sJYM = '';
if(iJYM == 0) sJYM = "1";
else if(iJYM == 1) sJYM = "0";
else if(iJYM == 2) sJYM = "x";
else if(iJYM == 3) sJYM = "9";
else if(iJYM == 4) sJYM = "8";
else 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; //對(duì)不上就是假號(hào)碼
}
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com