php身份证校验码的计算例子

例子

 代码如下 复制代码

public function id_verify($my_id) {
 
    $coefficient = array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2);
 
    $remainder_map = array(1,0,'X',9,8,7,6,5,4,3,2);
 
    $count = 0;
     
    for ($i=0; $i < 17; $i++) {
         
        $count += $my_id[$i] * $coefficient[$i];
    }
 
    $remainder = $count % 11;
 
    if ($my_id[17] == $remainder_map[$remainder]){
 
        echo 'true';
    }else{
 
        echo 'false';
    }
}

使用方法很简单

 代码如下 复制代码

$body = '44010221990101001';
id_verify($my_id) //就会有结果输出的哦

时间: 2024-10-29 14:00:20

php身份证校验码的计算例子的相关文章

PHP计算身份证校验码示例

中国(大陆)公民身份证号码每一位所代表的意义,网上很多文章都有介绍,在此就不多说.其中身份证号码的最后一位是校验码,跟据前17位计算得到.算法大 概是这样:把前17位的每一个数字和一串加权因子相乘,再计算这些乘积的和:把这些乘积的和模11得到的数字作为序号,最后在一个校验码串中提取出与序号 相对应的字符.当然,网上也有不少的文章教大家计算这个校验码,下面我们将尝试用PHP语言来完成这一工作,也许可以用于PHP开发中,如校验用户的身份 证号码是否正确. 假设某中国(大陆)公民的身份证号码前17位是

PHP身份证校验码计算方法

中国(大陆)公民身份证号码每一位所代表的意义,网上很多文章都有介绍,在此就不多说.其中身份证号码的最后一位是校验码,跟据前17位计算得到.算法大 概是这样:把前17位的每一个数字和一串加权因子相乘,再计算这些乘积的和:把这些乘积的和模11得到的数字作为序号,最后在一个校验码串中提取出与序号 相对应的字符.当然,网上也有不少的文章教大家计算这个校验码,下面我们将尝试用PHP语言来完成这一工作,也许可以用于PHP开发中,如校验用户的身份证号码是否正确. 假设某中国(大陆)公民的身份证号码前17位是这

用sql实现18位身份证校验代码分享 身份证校验位计算_MsSql

身份证校验码的计算方法 1.将前面的身份证号码17位数分别乘以不同的系数.第i位对应的数为[2^(18-i)]mod11.从第一位到第十七位的系数分别为:7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 : 2.将这17位数字和系数相乘的结果相加: 3.用加出来和除以11,看余数是多少?: 4.余数只可能有0 1 2 3 4 5 6 7 8 9 10这11个数字.其分别对应的最后一位身份证的号码为1 0 X 9 8 7 6 5 4 3 2: 复制代码 代码如下: with

用sql实现18位身份证校验代码分享 身份证校验位计算

身份证校验码的计算方法 1.将前面的身份证号码17位数分别乘以不同的系数.第i位对应的数为[2^(18-i)]mod11.从第一位到第十七位的系数分别为:7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 : 2.将这17位数字和系数相乘的结果相加: 3.用加出来和除以11,看余数是多少?: 4.余数只可能有0 1 2 3 4 5 6 7 8 9 10这11个数字.其分别对应的最后一位身份证的号码为1 0 X 9 8 7 6 5 4 3 2: 复制代码 代码如下:with t

身份证校验算法与ASP程序_应用技巧

18位身份证校验算法  身份证校验码算法  身份证校验码产生方法: ∑(ai×Wi)(mod 11) i: 表示号码字符从由至左包括校验码在内的位置序号: ai 表示第i位置上的号码字符值: Wi 第i位置上的加权因子,其数值Wi=mod(power(2,(n-1)),11) i 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 Wi 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 1 相应的校验码: ∑(ai×WI)(mod 11

【补充一则】身份证校验的c#代码

关于身份证号码的校验,网上的各种代码实在太多了.这里我补充一则C#的代码. 在网页上,通常是一个textbox让用户输入,然后用一个正则表达式验证控件,用这样一个正则表达式:\d{17}[\d|X]|\d{15} 这样当内容通过验证以后,可以保证用户输入的文本有15位数字或者18位数字(末尾可以为X)组成. 我们可以先声明一个string数组,当然int数组也可以,用string主要是因为可以胜率string转换到int的过程.     /* 身份证的省份地区代码(身份证的前两位)    11:

一个18位身份证校验计算函数

函数|函数 因需要对15位旧身份证号码进行升位和校验.查询处理,又没有搜索到现成的函数,于是自己写了一个简单的过程,希望能够帮得上需要的朋友.本函数的功能单一,只能校验第18位号码是否正确或者取得第18位号码,其他功能留给大家自己扩展吧! <%' Version: 1.0.1' Author: sfply(sfply@163.com)' Last Modified: 2004/7/17 12:03' Src是身份证号码,可以是15位也可以是18位,15位时只能返回验证码方式使用' iChk参数取

JS验证身份证号地区码及最后一位校验码

/* 参数为身份证号 返回正确校验码 */ function getjy(id) {     var arr = new Array();//分别取出身份证的前17位加入到这个数组     var arr1 = new Array();//对向相应的次方     var num = 0;     for (var i = 0; i < 17; i++) {         arr[i] = id.charAt(i);     }     for (var i = 0; i < arr.leng

MaxCompute UDF系列之身份证校验及15位身份证号码转换成18位

为了验证一些老证件上的身份证号码到底是不是本人,今天为大家提供一个15位身份证号码转换成18位的MaxCompute的UDF,下载地址见附件. 效果如下: MaxCompute UDF代码如下: /*** * 身份证号码构成:6位地址编码+8位生日+3位顺序码+1位校验码 * 验证15位,18位证件号码是否有效:15位号码将直接转为18位: * 校验身份证号码除了校验位是否为数值,校验省份.出生日期 * 校验位不正确的会被正确的替代 * 出生日期逻辑有效性,即是否1900年前出生,是否当前日期后