利用JS函数制作身份证号末位检测器
前些日子无聊,脑里突然想到一个问题——在完成实名制的时候,当我输入一个编造的身份证号时,为什么会被识别出来是编造的嘞?
然后…我去搜索了一番,发现原来身份证号的最后一位并不是随机生成的,而是一个根据前17位的数字计算出来的校验码——也就是说,只要前17位号码已知,那么最后一个号码就可以通过复杂公式的计算得出。
于是我“处心积虑”,用JS写出了计算身份证最后一位计算的代码:
HTML部分:
<div id='box'><h3>身份证号码末位屌炸天计算器</h3><input type='text' id='num' placeholder='请输入身份证号前17位'><input type='button' id='btn' value='计算'><input type='text' id='result' disabled><br/><span class='s1'>(本页面与国家人口信息数据信息中心联网,请勿盗用!违法必揪出来乱棍打死!)</span><br/><span class='s2'>Design By 迷人小阿锴</span>
</div>
CSS部分:
<style>html{font-size:13.3333vw;}#box{width:5.5rem;height:3rem;margin:2rem auto;border:.02rem solid black;text-align:center;border-radius:.1rem;}h3{font:.3rem/.34rem '楷体';font-weight:bold;}#num{width:2.8rem;height:.38rem;border:.01rem solid black;border-radius:.1rem;text-align:center;font:.2rem/1 'Comic Sans MS';}#btn{width:.8rem;height:.41rem;border:.01rem solid black;border-radius:.1rem;background:white;margin-left:.3rem;font:.2rem/1 '楷体';}#btn:hover{cursor:pointer;background:black;color:white;transition:.3s;;}#result{width:3.9rem;height:.38rem;border:.01rem solid black;margin-top:.04rem;border-radius:.1rem;text-align:center;font:.2rem/1 'Comic Sans MS'}.s1{font:.1rem/1 '黑体';color:red;}.s2{font:.1rem/1 '黑体';color:blue;}</style>
JS部分:
<script>var onum=document.getElementById('num');var obtn=document.getElementById('btn');var orst=document.getElementById('result');window.onload=function(){onum.value="";orst.value="";}obtn.onclick=function(){var ipt=onum.value;var reg=/^[0-9]{17}$/gif(reg.test(ipt)){var str=ipt+'0';//创建身份证号码字符串var sum=0; //声明单位加权乘积和for(var i=0;i<str.length-1;i++){ //遍历每一位数字Aivar n=18-i;var Ai=str.charAt(i);var Wi=Math.pow(2,n-1)%11; //位置加权公式Wi=2^(i-1)(mod11)调取每位的Wivar k=Ai*Wi;sum+=k;}var y=sum%11; //利用Y=mod(S,11)取余公式计算校验明码var x=0; //声明校验暗码xswitch(y){case 0:x=1;break;case 1:x=0;break;case 2:x='X';break;case 3:x=9;break;case 4:x=8;break;case 5:x=7;break;case 6:x=6;break;case 7:x=5;break;case 8:x=4;break;case 9:x=3;break;case 10:x=2;break;}orst.value=ipt+x;}else{alert('输入错误,请重新输入!')}}
</script>
成就感十足!!
利用JS函数制作身份证号末位检测器相关推荐
- Greenplum函数 - 身份证号15位转18位
前几天一直有人在问,如何在Greenplum里面实现身份证号15位到18位的转换函数,今天网上搜了一下,看了看大概的逻辑,做了个简单实现,转换逻辑不懂的,请自行百度吧,这里放出函数内容,供大家使用: ...
- JS函数制作倒数计时器
JS函数制作倒数计时器 <!DOCTYPE html> <html><head><meta charset="utf-8">< ...
- js实现根据身份证号自动生成出生日期
<script src="http://apps.bdimg.com/libs/jquery/1.8.3/jquery.min.js"></script> ...
- mysql 怎么用SQL语句将老身份证号15位补位到新身份证号18位
一.15位的身份证和18位的身份证的区别是什么? 只有15位号码的就是第一代身份证,而18位号码的则是第二代身份证.15位的身份证和18位的身份证的区别是:第二代身份证比第一代身份证增加了出生年份中的 ...
- js中通过身份证号判断性别(倒数第二位奇数-男,偶数-女)
//通过身份证号,判断性别 var str2 = '110123199810103726'; var num = str2.charAt(16); //console.log(num); if(num ...
- 数据库SQL函数 根据身份证号/出生年月 精确计算年龄(Oracle/MySQL)
<问题> 根据身份证号统计年龄(18位) Oracle <思路> (1)Substr()函数在Oracle使用中表示被劫取的字符串表达式,截取字符串的内容. (2)To_dat ...
- 手机号 ,邮箱,固定电话js验证,身份证号(正则表达式)
固定电话: var myreg =/^((1[0-9]{10})|(((([0-9]{3}-)?[0-9]{8})|(([0-9]{4}-)?[0-9]{7}))(-[0-9]{1,4})?))$/; ...
- 今天写了个自定义函数验证身份证号是否符合规则
大家好,我是老王.今天调了半天,报了各种错误,终于写好了这个验证身份证号的自定义函数,规则可以参考身份证号码的编排规则 CREATE OR REPLACE FUNCTION LAOWANG_CHECK ...
- js实现完美身份证号有效性验证+身份证与姓名匹配
/* 根据[中华人民共和国国家标准 GB 11643-1999]中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成.排列顺序从左至右依次为:六位数字地址码,八位 ...
最新文章
- 李开复对话Yoshua Bengio:AI技术的下一个突破
- 西湖大学蓝振忠:预训练语言模型的前沿发展趋势
- liun5实现DHCP地址分配笔记
- 自定义Quartz超实用工具类
- BZOJ 1821 [JSOI2010] Group 部落划分 Group
- 悬镜 linux防黑加固平台,悬镜答疑丨悬镜服务器防护CC效果如何?
- linux怎么运行ing,Linux命令笔记ing
- Python中shuffle() 函数的作用及用法
- android 打印线程信息
- Java ListResourceBundle getKeys()方法与示例
- php软件开发--laravel框架
- php 小墙 垃圾评论,关于php过滤垃圾评论
- LabView学习笔记(十):条件结构
- 如何在 Linux 上检查可用磁盘空间 [终端和 GUI]
- oracle笔记(2010-1-30)
- PTA是什么?BT-WIFI共存 转帖
- dom不刷新 vue 加数据后_vue 数据更新 dom不渲染
- HMM中的前向法(转)
- 用python实现词频分析+词云
- 雨夜赶长路,房企必经的三场“价值战事”