小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

java實(shí)現(xiàn)的18位身份證格式驗(yàn)證算法

 執(zhí)著男孩 2006-09-13

公民身份號(hào)碼是特征組合碼,由十七位數(shù)字本體碼和一位數(shù)字校驗(yàn)碼組成.排列順序從左至右依次為:六位數(shù)字地址碼,八位數(shù)字出生日期碼,三位數(shù)字順序碼和一位數(shù)字校驗(yàn)碼。1、地址碼表示編碼對(duì)象常住戶口所在縣(市、旗、區(qū))的行政區(qū)劃代碼,按GB/T2260的規(guī)定執(zhí)行。

  2、出生日期碼表示編碼對(duì)象出生的年、月、日,按GB/T7408的規(guī)定執(zhí)行。年、月、日代碼之間不用分隔符。例:某人出生日期為1966年10月26日,其出生日期碼為19661026。

  3、順序碼表示在同一地址碼所標(biāo)識(shí)的區(qū)域范圍內(nèi),對(duì)同年、同月、同日出生的人編定的順序號(hào),順序碼的奇數(shù)分配給男性,偶數(shù)千分配給女性。

  4、校驗(yàn)碼校驗(yàn)碼采用ISO7064:1983,MOD11-2校驗(yàn)碼系統(tǒng)。

  1)十七位數(shù)字本體碼加權(quán)求和公式 S=Sum(Ai*Wi),i=0,...,16,先對(duì)前17位數(shù)字的權(quán)求和 Ai:表示第i位置上的身份證號(hào)碼數(shù)字值 Wi:表示第i位置上的加權(quán)因子 Wi:7910584216379105842

  2)計(jì)算?!=mod(S,11)

  3)通過(guò)模得到對(duì)應(yīng)的校驗(yàn)碼 :012345678910 驗(yàn)碼:10X98765432

  下面是java實(shí)現(xiàn)的代碼

  /**IDCard.javaCreatedon2004-11-517:03:37**/packageorg.yz21.study.idcard;

  /***@authorviolin2004-11-517:03:37*Copyrightwww.yz21.org2003-2004*/publicclassIDCard{//wi=2(n-1)(mod11)finalint[]wi={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1};

  //verifydigitfinalint[]vi={1,0,X,9,8,7,6,5,4,3,2};

  privateint[]ai=newint[18];

  publicIDCard(){}

  //verifypublicbooleanVerify(Stringidcard){if(idcard.length()==15){idcard=uptoeighteen(idcard);}if(idcard.length()!=18){returnfalse;}Stringverify=idcard.substring(17,18);if(verify.equals(getVerify(idcard))){returntrue;}returnfalse;}

  //getverifypublicStringgetVerify(Stringeightcardid){intremaining=0;

  if(eightcardid.length()==18){eightcardid=eightcardid.substring(0,17);}

  if(eightcardid.length()==17){intsum=0;for(inti=0;i<17;i++){Stringk=eightcardid.substring(i,i+1);ai=Integer.parseInt(k);}

  for(inti=0;i<17;i++){sum=sum+wi*ai;}remaining=sum%11;}

  returnremaining==2?"X":String.valueOf(vi[remaining]);}

  //15updateto18publicStringuptoeighteen(Stringfifteencardid){Stringeightcardid=fifteencardid.substring(0,6);eightcardid=eightcardid+"19";eightcardid=eightcardid+fifteencardid.substring(6,15);eightcardid=eightcardid+getVerify(eightcardid);returneightcardid;}

  }

  測(cè)試代碼:使用的單元測(cè)試工具是junit

  /**IDCardTest.javaCreatedon2004-11-517:32:12**/packageorg.yz21.study.idcard;

  importjunit.framework.Test;importjunit.framework.TestCase;importjunit.framework.TestSuite;

  /***@authorviolin2004-11-517:32:12*Copyrightwww.yz21.org2003-2004*/publicclassIDCardTestextendsTestCase{

  privateStringidcard1="11010519491231002X";privateStringidcard2="440524188001010014";

  publicvoidtestVerify(){IDCardidcard=newIDCard();this.assertTrue(idcard.Verify(idcard1));this.assertTrue(idcard.Verify(idcard2));}

  publicstaticTestsuite(){returnnewTestSuite(IDCardTest.class);}

  publicstaticvoidmain(String[]args){junit.textui.TestRunner.run(suite());}}  


    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多