第二代身份证 验证

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


相关推荐

  • linux tar (打包、压缩、解压)命令[通俗易懂]

    linux tar (打包、压缩、解压)命令[通俗易懂]打包程序:tarc:  创建文档 t:列出存档内容 x:提取存档 f:filename要操作的文档名 v:详细信息一:打包打包:是指把文件整合在一起,不压缩1.将文件打包:tarcfa.tar/etc/2.列出文档内容:tartfa.tar3.提取文档内容:tarxfa.tar二:压缩压缩:把打包好的文件压缩,便于存储…

    2022年5月31日
    43
  • flash cookie的制作和使用例子详解 一

    flash cookie的制作和使用例子详解 一flashcookie是什么,有什么作用,这些不做介绍,可以在网上搜,这里主要是做一个制作和使用flashcookie的例子要使用flashcookie首先要制作一个swf的flash文件,然后在页面才能调用。flash的制作,这里我们就用adobeflashcs5,这个工具网上一搜就可以找到下载地址打开后界面如下图所示,[img]http://dl2.iteye…

    2022年7月14日
    16
  • XOR问题

    XOR问题在Rosenblatt单层感知机中已经对异或问题做了介绍,并论证说明了只适用于线性分类问题的Rosenblatt感知机无法对异或问题进行分类。然而非线性问题是普遍存在的,下面就使用带隐藏节点的神经网络来解决异或问题。异或问题:异或(XOR)问题可以看做是单位正方形的四个角,响应的输入模式为(0,0),(0,1),(1,1),(1,0)。第一个和第三个模式属于类0,即和…

    2022年7月16日
    26
  • Java分页类定义和使用「建议收藏」

    Java分页类定义和使用「建议收藏」1 简介在后端与前端进行交互的过程中,需要对后端得到的数据进行分页推送给前端,比如说在某个博客网站上某用户编写了100篇文档,但在页面展示时,可能在每个页面仅仅展示10条数据,如下图所示因此,而且此类需求是一个常见需求,所以可以总结一下这个用法。一般需要实现该情景,需要返回的类似数据如下:{&amp;amp;amp;quot;result&amp;amp;amp;quot;:&amp;amp;amp;quot;success&amp;amp;

    2022年10月3日
    0
  • Git 当前项目设置 用户名、邮箱「建议收藏」

    Git 当前项目设置 用户名、邮箱「建议收藏」Git全局配置和单个仓库的用户名邮箱配置学习git的时候,大家刚开始使用之前都配置了一个全局的用户名和邮箱$gitconfig–globaluser.name“github’sName”$gitconfig–globaluser.email“github@xx.com”$gitconfig–list如果你公司的项目是放在自建的gitlab上面,如…

    2022年9月7日
    0
  • sqlyog错误号码2058_将设备连接至你的电脑时出错

    sqlyog错误号码2058_将设备连接至你的电脑时出错远在天边,近在眼前。

    2022年9月28日
    0

发表回复

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

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