php ×××号码效验码生成函数
最近网站(天气预报15天查询)扩展添加×××号码查询的便民功能,其在有一个关于×××效验码的验证功能,在这里和大家分享!
首先要知道×××的组成:
号码的结构: 公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。
18位×××号码前17位相对是固定的,就是最后一位需要通过前17位按一定的算法生成!
校验码算法: 第十八位数,作为尾号的校验码,是由号码编制单位按统一的公式计算出来的,如果某人的尾号是0-9,都不会出现X,但如果尾号是10,那么就得用X来代替,因为如果用10做尾号,那么 此人的×××就变成了19位。X是罗马数字的10,用X来代替10,可以保证公民的×××符合国家标准
根据算法写出对应的功能函数:
<?php function checkcode($idCard){$Wi = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1); // 加权因子 $ValideCode = array(1, 0, X, 9, 8, 7, 6, 5, 4, 3, 2); // ×××验证位值.10代表X for ( $i = 0; $i < 17; $i++) { $sum += $Wi[$i] * $idCard[$i]; // 加权求和 } $valCodePosition = $sum % 11;return $ValideCode[$valCodePosition]; } ?>
本功能函数是验证输入的18位×××号码得到其真实有效的效验码!
实例运用:×××号码查询(http://15tianqi.cn/sfz/)
对函数的返回码可进行×××号最后一位比对是否正确!
转载于:https://blog.51cto.com/mumayi/1404122
php ×××号码效验码生成函数相关推荐
- 身份证号第18位(效验码)计算方法 用于检测身份证号是否正确
前言: 由于在某些时候,可能需要用户输入真实的身份证号,但是用户可能会胡乱输入虚假的身份证号,导致信息的不真实性,所以为了防止用户胡乱输入,可以通过一些小方法来检测身份证号是否输入正确,本文将介绍一种 ...
- 公民身份号码 校验码 检证程序
公民身份号码 校验码 检证程序 using System; using System.Collections.Generic; using System.Linq; using System.Tex ...
- 公民身份号码校验码算法(C#版)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- 公民身份号码 校验码 检证程序
公民身份号码 校验码 检证程序 using System; using System.Collections.Generic; using System.Linq; using System.Tex ...
- 16位CRC循环冗余校验码生成函数
16位的CRC校验码生成,可使用以下函数: //16位CRC校验码生成 //返回值:CRC校验码 unsigned int CRC_check(unsigned char *addr,int num) ...
- Java身份证号码严格验证(第18位校验码算法实现)
/*** 身份证号码的格式:610821-20061222-612-X 由18位数字组成:前6位为地址码,第7至14位为出生日期码,第15至17位为顺序码,* 第18位为校验码.检验码分别是0-10共 ...
- 判断身份证号码的正确性源码
判断身份证号码的正确性源码 根据[中华人民共和国国家标准 GB 11643-1999]中有关公民身份号码的规定, '公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成. ...
- 【Java】身份证号码验证
代码引用自:https://gitee.com/appleat/codes/ynrtqujv0wfgesm8ia9b547 1 package xxx; 2 3 /** 4 * Created by ...
- java验证身份证号码是否有效源代码
转载自 java验证身份证号码是否有效源代码 1.描述 用java语言判断身份证号码是否有效,地区码.出身年月.校验码等验证算法 2.源代码 package test; import java.t ...
最新文章
- Linux shell 学习笔记(7)— 构建基本脚本(变量、重定向、管道、状态码)
- SQL Server DATEADD() 函数
- 静态html使用js发送邮件,html实现邮箱发送邮件_js发送邮件至指定邮箱功能
- 机器学习Sklearn实战——adaboost
- 【NLP】文本生成?还不快上知识库
- Java和操作系统交互细节
- axios代理跨域 cli4_跨域本质及解决办法
- sql怎么读_大白话讲解脏写、脏读、不可重复读和幻读
- C#LeetCode刷题之#242-有效的字母异位词(Valid Anagram)
- 我当圣诞老人跳舞啦!
- linux显示 cron 服务是否正在运行_通过Linux系统自带日志监控系统安全
- java语法和python语法的一些区别
- fpga开发教程 labview_NILabVIEW高性能FPGA开发者指南.pdf
- php学习redis买什么书,redis
- angular对象简单介绍
- 云蹦迪云广场舞软件开源源码
- SQL Server 数据库修复专家SQLRescue
- Auto.js 实现钉钉实时抢红包
- 【C语言进阶】C语言实现通讯录
- 保姆式RecyclerView下拉刷新、上拉加载更多Kotlin
热门文章
- CSS透明度设置支持IE,Chrome,Firefox浏览器
- 金融科技公司采用大数据领先银行的三种方式
- Swift Web 开发之 Vapor - 路由(二)
- Java Semaphore实现线程池任务调度
- Android TrafficStats类的使用
- 设置Android设备在睡眠期间始终保持WLAN开启的代码实现
- ssh_exchange_identification: Connection closed by remote host 问题的解决 (转)
- Control Compliance Suite,听说过吗?
- 走近TCP/IP协议
- linux mpstat命令