识别错误身份证号码的计算机审计方法

上传人:ji****72 文档编号:39541671 上传时间:2018-05-17 格式:DOC 页数:13 大小:69.50KB
返回 下载 相关 举报
识别错误身份证号码的计算机审计方法_第1页
第1页 / 共13页
识别错误身份证号码的计算机审计方法_第2页
第2页 / 共13页
识别错误身份证号码的计算机审计方法_第3页
第3页 / 共13页
识别错误身份证号码的计算机审计方法_第4页
第4页 / 共13页
识别错误身份证号码的计算机审计方法_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《识别错误身份证号码的计算机审计方法》由会员分享,可在线阅读,更多相关《识别错误身份证号码的计算机审计方法(13页珍藏版)》请在金锄头文库上搜索。

1、1识别错误身份证代码的识别错误身份证代码的计算机审计方法计算机审计方法一、方法代码GCA/0002二、方法名称识别错误身份证代码的计算机审计方法三、目标功能审计目标:验证身份信息的存在性、唯一性、合理性、规范性,有助于审计人员从总体上把握人员信息,整体上评判一个数据库系统开发的好坏。审计功能:通过对身份证号码的检查,发现一些有价值的问题线索,实现审计目标,发挥审计的监督作用。四、所需数据所需数据资料如下表所示:序号数据资料名称结构化非结构化半结构化1人员信息表其中:基础表:人员信息表2数据元素:姓名、性别、身份证号码 五、分析步骤(一)、验证身份证号码长度的合理性。根据我国身份证号码的编码规则

2、,长度不为 15 位或 18 位的均视为不合理。类 SQL 语句:Select b.* From 人员信息表 b Where (Len(b.身份证号) Not In (15,18) And b.身份证号 Is Not Null ) Or b.身份证号 is Null(二)、验证身份证号码是否存在无效字符。在身份证号码的录入时,有的时候即使长度是 15 位或 18 位,但由于身份证号码中包含其他字符,如*,#,¥,%等,均视为身份证号码存在无效字符。做法上,如果身份证号码为 15 位,则取全部的 15 位;如果身份证号码为 18 位,则取前面 17 位,把结果先存于中间表中,再进行查询。类 SQ

3、L 语句:select 姓名,性别,iif(Len(b.身份证号)=18,mid(b.身份证号,1,17),b.身份证号) as 身份证号 into 中间表 From 人员信息表 b Where Len(b.身份证号) In (15,18)Select * From 中间表 Where Isnumeric(身份证号) = 0 3case when len(b,)=18 then substring(,1,17) else b.xxx end(三)、验证身份证号码中包含的出生日期信息是否不符常理。在身份证号码的录入时,有的时候即使长度是 15 位或 18 位,但如果存在如 1985-2-30 等

4、出生日期信息,均视为身份证号码不符常理。做法上,先提取出出生的年月日,把结果先存于中间表中,再进行查询。类 SQL 语句:select 姓名,性别,身份证号,iif(Len(b.身份证号)=15,19+mid(b.身份证号,7,2)+-+mid(b.身份证号,9,2)+-+mid(b.身份证号,11,2) ,mid(b.身份证号,7,4)+-+mid(b.身份证号,11,2)+-+mid(b.身份证号,13,2) as 出生日期 into 中间表 1 From 人员信息表 b Where Len(b.身份证号) In (15,18) Select 中间表 1.* From 中间表 1 wher

5、e ISDATE(出生日期)=0 or not(出生日期 Between 1900-01-01 And 2010-06-30) 四、验证身份证号码中包含的性别信息是否与字段性别的信息相吻合。类类类 SQLSQLSQL 语语语句:句:句:SelectSelectSelect * * * FromFromFrom 人人人员员员信息表信息表信息表 b b b WhereWhereWhere Len(b.Len(b.Len(b.身份身份身份证证证号号号) ) ) InInIn (15,18)(15,18)(15,18) andandand 性性性别别别= = =男男男 andandand iif(Le

6、n(b.iif(Len(b.iif(Len(b.身份身份身份证证证号号号)=15,mid(b.)=15,mid(b.)=15,mid(b.身份身份身份证证证号号号,15,1),mid(b.,15,1),mid(b.,15,1),mid(b.身份身份身份证证证号号号,17,1),17,1),17,1) IN(0,2,4,6,8)IN(0,2,4,6,8)IN(0,2,4,6,8) ororor Len(b.Len(b.Len(b.身份身份身份证证证号号号) ) ) InInIn (15,18)(15,18)(15,18) andandand 性性性别别别= = =4女女女 andandand i

7、if(Len(b.iif(Len(b.iif(Len(b.身份身份身份证证证号号号)=15,mid(b.)=15,mid(b.)=15,mid(b.身份身份身份证证证号号号,15,1),mid(b.,15,1),mid(b.,15,1),mid(b.身份身份身份证证证号号号,17,1),17,1),17,1) IN(1,3,5,7,9)IN(1,3,5,7,9)IN(1,3,5,7,9) 六、流程图提取出人 员信息表成都市残联残 疾人信息库性别信息与 录入不符出生日期信 息不符常理身份证号码 有无效字符身份证号码 长度不合理长度不合理 名单有无效字符 名单出生日期不 符常理名单性别信息不 符名

8、单身份证号码有 疑问人员计算不符的比例,提出针对 性建议5七、方法语言(一)验证身份证号码长度的合理性。Var SqlStr, CurQuery, IsEmpty;BeginBeginBegin/Sql 语句赋值给变量SqlStr:= Select b.* From 人员信息表 b Where (Len(b.身份证号) Not In (15,18) And b.身份证号 Is Not Null ) Or b.身份证号 is Null ;/执行查询 SQL,查找身份证号码长度不合理的情况CurQuery:=CreateQ(SqlStr,-1);/查询结果集是否为空IsEmpty:=QEof(Cu

9、rQuery);if IsEmpty#1 thenbegin/循环将查询结果放入业务疑点临时库repeatAddTransRslt(CurQuery,身份证号码长度不合理 查询结果); IsEmpty:=QMov(CurQuery,1);IsEmpty:=QEof(CurQuery);6until IsEmpty=1;/将临时库结果集放入疑点库TransBatch(CurQuery,身份证号码长度不合理 查询结果);EndEnd.(二)、验证身份证号码是否存在无效字符。Var SqlStr, CurQuery, IsEmpty;BeginBeginBegin/Sql 语句赋值给变量SqlStr

10、:= select 姓名,性别,iif(Len(b.身份证号)=18,mid(b.身份证号,1,17),b.身份证号) as 身份证号 From 人员信息表 b Where Len(b.身份证号) In (15,18);/生成临时表CreateTempTable(中间表,SqlStr);/Sql 语句赋值给变量SqlStr:= Select * From 中间表 Where Isnumeric(身份证号) = 0 ;/执行查询 SQL,查找身份证号码存在无效字符的记录CurQuery:=CreateQ(SqlStr,-1);/查询结果集是否为空7IsEmpty:=QEof(CurQuery);

11、if IsEmpty#1 thenbegin/循环将查询结果放入业务疑点临时库repeatAddTransRslt(CurQuery,身份证号码存在无效字符 查询结果); IsEmpty:=QMov(CurQuery,1);IsEmpty:=QEof(CurQuery);until IsEmpty=1;/将临时库结果集放入疑点库TransBatch(CurQuery,身份证号码存在无效字符 查询结果);EndEnd.(三)、验证身份证号码中包含的出生日期信息是否不符常理。Var SqlStr, CurQuery, IsEmpty;BeginBeginBegin/Sql 语句赋值给变量SqlSt

12、r:= select 姓名,性别,身份证号,iif(Len(b.身份证号)=15,19+mid(b.身份证号,7,2)+-+mid(b.身份证号,9,2)+-+mid(b.8身份证号,11,2) ,mid(b.身份证号,7,4)+-+mid(b.身份证号,11,2)+-+mid(b.身份证号,13,2) as 出生日期 From 人员信息表 b Where Len(b.身份证号) In (15,18); /生成临时表CreateTempTable(中间表 1,SqlStr);/Sql 语句赋值给变量SqlStr:= Select 中间表 1.* From 中间表 1 where ISDATE(

13、出生日期)=0 or not(出生日期 Between 1900-01-01 And 2010-06-30) ;/执行查询 SQL,查找出生日期信息不符常理的记录CurQuery:=CreateQ(SqlStr,-1);/查询结果集是否为空IsEmpty:=QEof(CurQuery);if IsEmpty#1 thenbegin/循环将查询结果放入业务疑点临时库repeatAddTransRslt(CurQuery,出生日期信息不符常理 查询结果); IsEmpty:=QMov(CurQuery,1);9IsEmpty:=QEof(CurQuery);until IsEmpty=1;/将临时

14、库结果集放入疑点库TransBatch(CurQuery,出生日期信息不符常理 查询结果);EndEnd.(四)验证身份证号码中包含的性别信息是否与字段性别的信息相吻合。 Var SqlStr, CurQuery, IsEmpty;BeginBeginBegin/Sql 语句赋值给变量SqlStr:= Select * From 人员信息表 b Where Len(b.身份证号) In (15,18) and 性别=男 and iif(Len(b.身份证号)=15,mid(b.身份证号,15,1),mid(b.身份证号,17,1) IN(0,2,4,6,8) or Len(b.身份证号) In

15、 (15,18) and 性别=女 and iif(Len(b.身份证号)=15,mid(b.身份证号,15,1),mid(b.身份证号,17,1) IN(1,3,5,7,9) ;/执行查询 SQL,查找身份证号码中包含的性别信息与字段性别信息不吻合的情况CurQuery:=CreateQ(SqlStr,-1);/查询结果集是否为空10IsEmpty:=QEof(CurQuery);if IsEmpty#1 thenbegin/循环将查询结果放入业务疑点临时库repeatAddTransRslt(CurQuery,性别信息不符 查询结果); IsEmpty:=QMov(CurQuery,1);IsEmpty:=QEof(CurQuery);until IsEmpty=1;/将临时库结果集放入疑点库TransBatch(CurQuery,性别信息不符 查询结果);EndEnd.八、适用法规法规名称:公民身份号

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号