第二代身份证 验证

第二代身份证 验证
今天,在盛大某网站注册的时候,身份证必填,但我又不想填真实身份证号码,于是随便编了串自认为合法的身份证号码,但是却马上被提示号码错误,由于响应速度极快,可以肯定不是联机校验正确性的,那也就是说第二代身份证除了大家都知道的几位表示生日和性别的规则以外,还有另外的自我校验规则。于是翻开页面源码查看,发现这段js没有被压缩,所以规则也很好懂。
就在这里给大家科普下,不知道是不是火星了,呵呵。
以下代码来自这里,版权归盛大。当然,你也可以在维基百科找到更详细的介绍和算法。

大家好,又见面了,我是你们的朋友全栈君。

今天,在盛大某网站注册的时候,身份证必填,但我又不想填真实身份证号码,于是随便编了串自认为合法的身份证号码,但是却马上被提示号码错误,由于响应速度极快,可以肯定不是联机校验正确性的,那也就是说第二代身份证除了大家都知道的几位表示生日和性别的规则以外,还有另外的自我校验规则。于是翻开页面源码查看,发现这段js没有被压缩,所以规则也很好懂。

就在这里给大家科普下,不知道是不是火星了,呵呵。

以下代码来自
这里,版权归盛大。当然,你也可以在
维基百科找到更详细的介绍和算法。

 

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; //对不上就是假号码
}
文章链接:http://luy.li/2011/01/01/sfzhm/

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/153637.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 用php怎样将图片gif转化为jpg

    用php怎样将图片gif转化为jpg

    2021年10月14日
    47
  • javaweb-springcloud-1-75

    javaweb-springcloud-1-75

    2021年5月18日
    131
  • restsharp 并发请求_JAVA应用

    restsharp 并发请求_JAVA应用C#RestSharp应用开通博客是想将自己所学的东西记录下来,以便自己查缺补漏,希望自己能坚持下去正题关于RestSharp的使用下载NuGet直接搜索即可,最新版本RestSharp需要.netframework4.5.2及以上支持Json序列化工具:Newtonsoft.Json,直接由NuGet下载官网说明:varclient=newRestClient(“http://ex…

    2022年9月8日
    5
  • 30个特色网站

    30个特色网站原文:http://www.360doc.com/showWeb/0/0/360001.aspx周游世界不再是有钱人的专利  穷游网:http://www.go2eu.com  在德国花3欧元就能住一晚,同5个人共花5欧元就能乘火车出城甚至出国……穷游网的热心“驴友”以自己的实战经验教你如何竭尽省钱之能事,以最有限的资金获得最In、最High的异域体验。囊中再羞涩也无法阻挡我们环球游历的愿

    2025年6月28日
    3
  • weex 在android模拟器,weex 启动 ios 模拟器

    前提需要的安装nodenpmweex-toolkitcocoaPods1.创建weex工程weexcreatehelloWolrd2.进入helloWolrd文件夹安装依赖,我用cnpminstall的话就会报错,这里最好用npminstallnpminstall3.添加ios应用weexplatfromaddios4.到platforms/ios目录下为ios工程用coc…

    2022年4月11日
    49
  • jinfo介绍[通俗易懂]

    jinfo介绍[通俗易懂]1.jinfo1.1简介jinfo用于打印java的配置信息,这些配置信息包括:javasystempropertiesjvm命令行参数通过查看这些配置信息,可以了解java进程的运

    2022年8月1日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号