| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 996 人关注过本帖, 1 人收藏
标题:身份证第18位验证码计算函数
只看楼主 加入收藏
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4941
专家分:30047
注 册:2008-10-15
结帖率:100%
收藏(1)
 问题点数:0 回复次数:1 
身份证第18位验证码计算函数
程序代码:
Public Function 计算身份证校验位(cs As String) As String

Const 检验码查询位 = "1 0 X 9 8 7 6 5 4 3 2"
Const 每位权数 = "7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 1"

Dim fj() As String          '用来分解上面二个常量的
Dim Q(16) As Long           '每位权数的数组
Dim W(16) As Long           '身份证17位
Dim i As Long               '循环变量
Dim M As Long               '
Dim j As Long               '除11 后的余

If Len(cs) <> 17 Then       '判断长度,不等于17,则退出,无返回值
    Exit Function
End If

fj = Split(每位权数, " ")   '分解权数
M = 0
For i = 1 To 17                         '循环
    W(i - 1) = Val(Mid(cs, i, 1))       '取身份证每位值
    Q(i - 1) = Val(fj(i - 1))           '取权数
    M = M + W(i - 1) * Q(i - 1)         '积累加
Next i

j = M Mod 11                            '取余
fj = Split(检验码查询位, " ")           '分解验证码表
计算身份证校验位 = fj(j)                '查表,返回结果

End Function

身份证第18位验证码计算函数
今天需要,临时写的.
算法原理,不提供了,网上大把的有.
搜索更多相关主题的帖子: 身份证 函数 验证 
2010-09-26 11:16
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4941
专家分:30047
注 册:2008-10-15
收藏
得分:0 
这个函数,我今天是用在 Excel  里,用来判断身份证号码是否输入错误。
并不是检测身份证是否是真实的,因为没去判断日期。

授人于鱼,不如授人于渔
早已停用QQ了
2010-09-26 12:05
快速回复:身份证第18位验证码计算函数
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023731 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved