PHP 做的后台,如何“实名验证”

我看好多大网站上有这个接口,大家有谁接触过吗?是给钱的还是怎么弄的?
2026年09月25日 22:56
有4个网友回答
网友(1):

实名认证牵涉公安备案系统,请想公安机关申请接口进行验证。

否则只能用身份证生成规则进行验证,但是这样验证不是百分之百准确的

以下附上PHP 身份证规则验证代码

/*/
# CopyRight: zxing
# Document: 检查符合 GB11643-1999 标准的身份证号码的正确性
# File:gb11643_1999.func.php Fri Mar 28 09:42:41 CST 2008 zxing
# Updated:Fri Mar 28 09:42:41 CST 2008
# Note: 调用函数 check_id();
#/*///
$id =array();
$id[] = '370882198601064774';
$id[] = '420502198611281126';
$id[] = '370882198601064770';
$id[] = '370882860106477';
$id[] = '63212519850703214x';
$id[] = '429021198203221006';
$id[] = '429036198203211023';
foreach ($id as $key => $value){
echo check_id($value)?$value.' 是真的!
': $value.' 是假的!
';
}
#/*/
/*/
# 函数功能:计算身份证号码中的检校码
# 函数名称:idcard_verify_number
# 参数表 :string $idcard_base 身份证号码的前十七位
# 返回值 :string 检校码
# 更新时间:Fri Mar 28 09:50:19 CST 2008
/*/
function idcard_verify_number($idcard_base){
if (strlen($idcard_base) != 17){
   return false;
}
    $factor = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); //debug 加权因子
    $verify_number_list = array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'); //debug 校验码对应值
    $checksum = 0;
    for ($i = 0; $i < strlen($idcard_base); $i++){
        $checksum += substr($idcard_base, $i, 1) * $factor[$i];
    }
    $mod = $checksum % 11;
    $verify_number = $verify_number_list[$mod];
    return $verify_number;
}
/*/
# 函数功能:将15位身份证升级到18位
# 函数名称:idcard_15to18
# 参数表 :string $idcard 十五位身份证号码
# 返回值 :string
# 更新时间:Fri Mar 28 09:49:13 CST 2008
/*/
function idcard_15to18($idcard){
    if (strlen($idcard) != 15){
        return false;
    }else{// 如果身份证顺序码是996 997 998 999,这些是为百岁以上老人的特殊编码
        if (array_search(substr($idcard, 12, 3), array('996', '997', '998', '999')) !== false){
            $idcard = substr($idcard, 0, 6) . '18'. substr($idcard, 6, 9);
        }else{
            $idcard = substr($idcard, 0, 6) . '19'. substr($idcard, 6, 9);
        }
    }
    $idcard = $idcard . idcard_verify_number($idcard);
    return $idcard;
}
/*/
# 函数功能:18位身份证校验码有效性检查
# 函数名称:idcard_checksum18
# 参数表 :string $idcard 十八位身份证号码
# 返回值 :bool
# 更新时间:Fri Mar 28 09:48:36 CST 2008
/*/
function idcard_checksum18($idcard){
    if (strlen($idcard) != 18){ return false; }
    $idcard_base = substr($idcard, 0, 17);
    if (idcard_verify_number($idcard_base) != strtoupper(substr($idcard, 17, 1))){
        return false;
    }else{
        return true;
    }
}
/*/
# 函数功能:身份证号码检查接口函数
# 函数名称:check_id
# 参数表 :string $idcard 身份证号码
# 返回值 :bool 是否正确
# 更新时间:Fri Mar 28 09:47:43 CST 2008
/*/
function check_id($idcard) {
if(strlen($idcard) == 15 || strlen($idcard) == 18){
   if(strlen($idcard) == 15){
    $idcard = idcard_15to18($idcard);
   }
   if(idcard_checksum18($idcard)){
    return true;
   }else{
    return false;
   }
}else{
   return false;
}
}

网友(2):

基本上就微博、qq 各类政府网站等才会授权实名验证吧。 一般企业,要申请这个还是不太现实的,即使给钱也不一定能行。因为这个牵涉到了用户信息安全,特别重要,如果网站发生意外,数据外泄,是非常危险的。

网友(3):

全国公民身份证号码查询服务中心 这个应该有提供接口吧,输入身份证和姓名,返回的是一致或不一致,需不需要费用就不知道了。

网友(4):

说详细一点,你所谓的实名认证是什么个认证法?