新员工身份证验证程序

2023-05-13

第一篇:新员工身份证验证程序

身份证及年龄验证核对政策和程序

1. 目的

为了防止误招童工,保证公司所招聘的员工符合国家和地方的法规要求,保护员工和公司的利益。 2. 适用范围

所有新员工的招聘。 3. 权责

人事部招聘文员初步核对身份证年龄、真伪,前台文员第二次验证,入职文员最后核实。 4.特殊说明:本司采用机读方式能自动识别身份证真假,特殊情况需人读时按以下相关程序进行鉴别: 4.1看手感:真实身份证较有弹性,折弯后迅速还原:假身份证软或较厚、易折断,没有弹性。

4.2看字体:真身份证的“姓名、性别、出生、民族、编号”的字体是公安部的加密字体,体形扁长,假身份证则字体较宽或比较模糊(因是复制)。

4.3看打印效果:真身份证是采用针样式打印,墨色较淡:假身份证常采用喷墨打印,墨色浓重

4.4看透光性能:真身份证下面背对光源,可清淅看到背面的国徴,假身份证则较模糊。

4.5身份证背面右上角第四条为椭圆大格(假证是小格)。 4.6身份证背面国徽中天安门城门为拱形(假证为方形)。 4.7身份证头像的黑色头发上没有蓝色网格(假证则有)。 4.8身份证公章颜色为橙色(假证为红色)。

4.9身份证公章字体,真证的正面的公安局的印章清晰,“公”字上面的八字中间有一横相连,“安”字中间的一横是一直线,“局”字的右侧是平的(下面的句字并没超出上面的尸字外面),假证则没有上述特征。 4.10身份证防伪暗印“中国”及“长城”与身份证字样同方向(假证为反方向)。

4.11身份证号码与性别辨识:2000年以前颁发的身份证其号码为15位,最后一位数为男单女双,2000年以后颁发的身份证其号为18位,最最后倒数第二位是男单女双;如身份证号码不符合上述规律则为假证。 4.12从身份证有效期辨识真伪:20周周岁以下颁发之身份证有效期为10年,20周岁-45周岁之间颁发之身份有效期为20年年,45周周岁以上颁发之身份证有效期为永久有效。

4.13第二代身份证的肉眼识别: A.在一般的光线下,平视第二代身份证表面时,表面上的物理防伪腊是无色透明的。

B.适当上下倾斜“第二代身份证”,便会观察到证件的左上方有一个变色的长城图案,呈橙绿色。 C.用左眼和用右眼分别观察,身份证上的长城图案的颜色将呈不同颜色。

D.将身份证旋转90度(垂直方向),观察到的长城图案蓝紫色。

E.底文为彩虹印刷的扭文。

F.正面背面均有“花”图案中间有“ JMSEZ”微缩文字,(身份证最中间位置) G.照片的脸部无网文,背景衣领均有网文覆盖。 H.直视下看不到光变色“长城”“中国 HINA”图案 I.下面下半部有大幅荧光长域图案(紫光灯下)。 说明:上述12项辨认身份证真例的方法,不能实用于所有的身份证件。旧式身份证件头像的黑色头发上有蓝色网格,并无“中国”及“长城”暗印,公章中的“公”字的八字中间无一横相连,内容有可以是手写的,其它防伪标记无异议时则为真证:否则则为假证,新式身份证件必须符合上述防伪标记及辨识方法。

5、辨别应聘之员工是否所持身份证为本人身份证件: 5.1将身份证背对应聘者,与应聘者核对出生年月、住址、身份证编号等,应聘者者回答应与身份证所写相符合。 5.2核对员工履历资料是否与身份证相符。 5.3询问应聘者生肖(要求应聘者回答要快)并计算身份证生肖是否与回答相符。

5.4询问应聘者家庭成员姓名、年龄、职业,并观察应聘者是否回答吞吞吐吐,询问应聘者各学历的年龄、工作的经历等,用计算时间性的方法识别应聘背景真伪。 5.5身份证照片与应聘者确认,观察应聘者身份证证照片(耳、唇、眼、鼻的形状),是否与本人相符,如发型、面形有部分变化是可以接受的。

说明:上述几项核对身份在询问时,人事应观察应聘者是否回答与身份证不符,或有隐瞒事实,或编造身份等项目,来确认应聘者身份的真伪。

6、验证身份证是否过期:所有应聘者身份证必须在有效期内,人事应计算应聘者身份证是否在有效期内,如身份证已过期,本次聘用将不予考虑。

7、计算年龄:人事应在招聘当日日(年月日)减去应聘者出生之年月日得出应聘者实际年龄,所有招聘之员工不得小于16周周岁(不满16周岁为童工),公司不得录用童工。

8、人事询问应聘者身份时如1-2项回答不上来属正常情况(如身份证号码或生肖)计算应聘者年龄已足18周岁,身份证件确定为本人真实有效的证件;方为其办理入职手续。 9.记录及表格

《童工、未成年工记录表》 10.支持性文件

《童工的处理政策和程序》 11.相关法律法规

11.1《中华人民共和国劳动法》 11.2《禁止使用童工的规定》

第二篇:身份证验证方法

如何验证身份证信息

可以从以下几个方面去鉴别:

1、看身份证编号:15位身份证编号的最后一位数字应该是男单女双,18位身份证编号的倒数第二位应该是男单女双,18位编号顺序从左到右依次为:6位地址号码,8位出生日期码,3位顺序码,1位校验码。

2、看申请年龄:公民必须年满16周岁方可办理

3、看有效期限,年满16至25周岁的公民,有效期为10年,26周岁至45周岁,有效期为20年,46周岁以上长期有效。

4、看签发日期及出生日期,月份日期为个位数的,前面不可以加0。

5、看身份证字体,1996年之后的,原则为机器打印,而不是手写。

6、看身份证背后特征,右上角从外往里数第四圈花纹有一处不交叉;身份证的“份”字单人旁的那一竖上面比下面细,其他字体的竖一样宽。

7、看公安局的盖章特征,身份证正面左下角,红色公安局的“局”字,右边最后一笔与尸字的一竖基本对齐;圆章中盾牌的形状,1996年之前盾牌上面的两条为内弧线,之后为线段。

8、看身份证的正面:中国/CHINA字体及长城防伪标线清晰,有立体感,背面网纹一致。

9、正面“出生”两字,“生”的位置比“出”低

10、公安局的盖章,如果有某县,县中最长的一横是平的,横的最后一点不是一点上钩。

11、身份证正面,中国地图的内围线,在性别处是不连续的,(是断开的,)其他是连续的

第三篇:台湾身份证号码的验证规则

身分證號碼的驗證規則

一般而言大家對身份字號的認知,多是知道共有10位,位第一位為英文字母,知道再多一點的大概就是第二個數字是男女生之分,男生為 1,女生為 2,接下來的一陀數字,是不是隨便輸入都可以呢?其實是不可以的。

身份證字號後面八個數字不是隨便打一些數字就可以了,其實前面七個可以隨便打,但是最後一位為檢查碼,必須經過之前一個字母與8個數字的組合計算後得出,以下即為檢查碼的運算原則:

1. 英文代號以下表轉換成數字

2. 3. 4. 5. 6. 7. 8. 9. 10. 11. A=10 台北市 J=18 新竹縣 S=26 高雄縣 B=11 台中市 K=19 苗栗縣 T=27 屏東縣 C=12 基隆市 L=20 台中縣 U=28 花蓮縣 D=13 台南市 M=21 南投縣 V=29 台東縣 E=14 高雄市 N=22 彰化縣 * W=32 金門縣 F=15 台北縣 * O=35 新竹市 X=30 澎湖縣 G=16 宜蘭縣 P=23 雲林縣 Y=31 陽明山 H=17 桃園縣 Q=24 嘉義縣 * Z=33 連江縣 * I=34 嘉義市 R=25 台南縣

12. 英文轉成的數字, 個位數乘9再加上十位數

13. 各數字從右到左依次乘1、2、3、4....8

14. 求出(2),(3)之和 15. 求出(4)除10後之餘數,用10減該餘數,結果就是檢查碼,若餘數為0,檢查碼就是 0。

例如: 身分證號碼是 F121955337

F 1 2 1 9 5 5 3 3

1 5 x x x x x x x x x x 1 9 8 7 6 5 4 3 2 1 ───────────────────── 1+45+8+14+6+45+20+15+6+3=163 163/10=16....3 (餘數) 10-3=7 (檢查碼)

以上資訊由 u881510@oz.nthu.edu.tw 提供,在此致謝。

第四篇:IKE 身份验证方法

1. Kerberos 2. 数字证书 3. 预共享密钥

ASK 是有波形还是无

FSK有几个还是1个

PSK波形的相位变化

路由器的3种验证

RSA签名

RSA随机R加密

预共享密钥

IIS身份验证

1.匿名身份验证

2。基本身份验证 (类似于PAP)

3 摘要式身份验证(类似于CHAP)

4 ASP.NET 身份验证

5 windows 身份验证

VTP模式有3种 服务器模式(Server)客户机模式(Client)透明模式(Transparent) 生成树 默认优先级为 32768(0-65535),MAC优先级为128(0-255)

no ip domain -lookup 关闭路由器域名解析

ACL,OSPF,EIGRP 使用反掩码

CAT5 100(125)

CAT6 250赫兹

CAT6a 500赫兹

CAT 7 500(实际600)

CAT7a 1000赫兹

Radius AAA 认证,授权,计费

第五篇:新旧身份证合法性验证及相互转换算法

新旧身份证合法性验证及相互转换算法.txt遇事潇洒一点,看世糊涂一点。相亲是经销,恋爱叫直销,抛绣球招亲则为围标。没有准备请不要开始,没有能力请不要承诺。爱情这东西,没得到可能是缺憾,不表白就会有遗憾,可是如果自不量力,就只能抱憾了。新旧身份证合法性验证及相互转换算法

——谨以此文献给共事3年即将离职的PPL

作者:成晓旭

前天,看到PPL在一个需要网站上注册,但该网站要求输入一个身份证号码,并且随便输入一个还不行:对方还要验证输入身份证的合法性,所以,烦得PPL在网上到处去找。基于此目前,特别在网上收集身份证相关的资料,整理成文,作为给PPL饯行的礼物之一,公布于我的Blog。也预祝PPL:“找份好工作,找个好老婆!”

1、关于中国居民身份证的常识:

我国现行使用公民身份证号码有两种尊循两个国家标准,〖GB 11643-1989〗和〖GB 11643-1999〗。

〖GB 11643-1989〗中规定的是15位身份证号码:排列顺序从左至右依次为:六位数字地址码,六位数字出生日期码,三位数字顺序码,其中出生日期码不包含世纪数。

〖GB 11643-1999〗中规定的是18位身份证号码:公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。

地址码:表示编码对象常住户口所在县(市、旗、区)的行政区划代码。

出生日期码:表示编码对象出生的年、月、日,其中年份用四位数字表示,年、月、日之间不用分隔符。

顺序码:表示同一地址码所标识的区域范围内,对同年、同月、同日出生的人员编定的顺序号。顺序码的奇数分给男性,偶数分给女性。

校验码:是根据前面十七位数字码,按照ISO 7064:1983.MOD 11-2校验码计算出来的检验码。

关于身份证号码最后一位的校验码的算法如下:

∑(a[i]*W[i]) mod 11 ( i = 2, 3, ..., 18 )

"*" : 表示乘号

i: 表示身份证号码每一位的序号,从右至左,最左侧为18,最右侧为1。

a[i]: 表示身份证号码第 i 位上的号码

W[i]: 表示第 i 位上的权值 W[i] = 2^(i-1) mod 11

设:R = ∑(a[i]*W[i]) mod 11 ( i = 2, 3, ..., 18 )

C = 身份证号码的校验码

则R和C之间的对应关系如下表:

R:0 1 2 3 4 5 6 7 8 9 10

C:1 0 X 9 8 7 6 5 4 3 2

由此看出 X 就是 10,罗马数字中的 10 就是X,所以在新标准的身份证号码中可能含有非数字的字母X。

2、算法:

/** *//** * */ package cxx.sourceCode.base;

import java.text.DateFormat; import java.text.NumberFormat; import java.text.ParseException; import java.util.Date; import java.util.Random;

/** *//** * @author 成晓旭 * */ public class Identity ...{ // 位权值数组

private static byte[] Wi=new byte[17]; // 身份证前部分字符数

private static final byte fPart = 6; // 身份证算法求模关键值

private static final byte fMod = 11; // 旧身份证长度

private static final byte oldIDLen = 15; // 新身份证长度

private static final byte newIDLen = 18; // 新身份证年份标志

private static final String yearFlag = "19"; // 校验码串

private static final String CheckCode="10X98765432"; // 最小的行政区划码

private static final int minCode = 150000; // 最大的行政区划码

private static final int maxCode = 700000; // 旧身份证号码

// private String oldIDCard=""; // 新身份证号码

// private String newIDCard=""; // 地区及编码

//private String Area[][2] = private static void setWiBuffer()...{ for(int i=0;i

//获取新身份证的最后一位:检验位

private static String getCheckFlag(String idCard)...{ int sum = 0; //进行加权求和

for(int i=0; i<17; i++)...{ sum += Integer.parseInt(idCard.substring(i,i+1)) * Wi[i]; } //取模运算,得到模值

byte iCode = (byte) (sum % fMod); return CheckCode.substring(iCode,iCode+1); }

//判断串长度的合法性

private static boolean checkLength(final String idCard,boolean newIDFlag)...{ boolean right = (idCard.length() == oldIDLen) || (idCard.length() == newIDLen); newIDFlag = false; if(right)...{ newIDFlag = (idCard.length() == newIDLen); } return right; }

//获取时间串

private static String getIDDate(final String idCard,boolean newIDFlag)...{ String dateStr = ""; if(newIDFlag) dateStr = idCard.substring(fPart,fPart+8); else dateStr = yearFlag + idCard.substring(fPart,fPart+6); return dateStr; }

//判断时间合法性

private static boolean checkDate(final String dateSource)...{ String dateStr = dateSource.substring(0,4)+"-"+dateSource.substring(4,6)+"-"+dateSource.substring(6,8); System.out.println(dateStr); DateFormat df = DateFormat.getDateInstance(); df.setLenient(false); try ...{ Date date= df.parse(dateStr); return (date!=null); } catch (ParseException e) ...{ // TODO Auto-generated catch block return false; } }

//旧身份证转换成新身份证号码

public static String getNewIDCard(final String oldIDCard)...{ //初始化方法

Identity.setWiBuffer(); if(!checkIDCard(oldIDCard))...{ return oldIDCard; } String newIDCard = oldIDCard.substring(0, fPart); newIDCard += yearFlag; newIDCard += oldIDCard.substring(fPart, oldIDCard.length()); String ch = getCheckFlag(newIDCard); newIDCard += ch; return newIDCard; }

//新身份证转换成旧身份证号码

public static String getOldIDCard(final String newIDCard)...{ //初始化方法

Identity.setWiBuffer(); if(!checkIDCard(newIDCard))...{ return newIDCard; } String oldIDCard = newIDCard.substring(0,fPart)+

newIDCard.substring(fPart+yearFlag.length(),newIDCard.length()-1); return oldIDCard; }

//判断身份证号码的合法性

public static boolean checkIDCard(final String idCard)...{ //初始化方法 Identity.setWiBuffer(); boolean isNew = false; //String message = ""; if (!checkLength(idCard,isNew))...{ //message = "ID长度异常"; return false; } String idDate = getIDDate(idCard, isNew); if(!checkDate(idDate))...{ //message = "ID时间异常"; return false; } if(isNew)...{ String checkFlag = getCheckFlag(idCard); String theFlag = idCard.substring(idCard.length()-1,idCard.length()); if(!checkFlag.equals(theFlag))...{ //message = "新身份证校验位异常"; return false; } } return true; }

//获取一个随机的"伪"身份证号码

public static String getRandomIDCard(final boolean idNewID)...{ //初始化方法

Identity.setWiBuffer(); Random ran = new Random(); String idCard getAddressCode(ran)+getRandomDate(ran,idNewID)+getIDOrder(ran); if(idNewID)...{ String ch = getCheckFlag(idCard); idCard += ch; } return idCard; }

//产生随机的地区编码

private static String getAddressCode(Random ran) ...{ if(ran==null)...{ return ""; }else...{ int addrCode = minCode + ran.nextInt(maxCode-minCode); return Integer.toString(addrCode);

= } }

//产生随机的出生日期

private static String getRandomDate(Random ran, boolean idNewID) ...{ // TODO Auto-generated method stub if(ran==null)...{ return ""; } int year = 0; if(idNewID)...{ year = 1900 + ran.nextInt(2007-1900); }else...{ year = 1 + ran.nextInt(99); } int month = 1+ran.nextInt(12); int day = 0; if(month==2)...{ day= 1+ran.nextInt(28); }else if(month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12)...{ day= 1+ran.nextInt(31); }else...{ day= 1+ran.nextInt(30); } NumberFormat nf = NumberFormat.getIntegerInstance(); nf.setMaximumIntegerDigits(2); nf.setMinimumIntegerDigits(2); String dateStr = Integer.toString(year)+nf.format(month)+nf.format(day); return dateStr; }

//产生随机的序列号

private static String getIDOrder(Random ran) ...{ // TODO Auto-generated method stub NumberFormat nf = NumberFormat.getIntegerInstance(); nf.setMaximumIntegerDigits(3); nf.setMinimumIntegerDigits(3); if(ran==null)...{ return ""; }else...{ int order = 1+ran.nextInt(999); return nf.format(order); } }

public Identity()...{ setWiBuffer(); } /** *//** * @param args */ public static void main(String[] args) ...{ // TODO Auto-generated method stub

String randomID=Identity.getRandomIDCard(true); System.out.println("随机身份证:"+randomID); /**//* String oldID=""; String newID=Identity.getNewIDCard(oldID); System.out.println("旧身份证:"+oldID); System.out.println("新身份证:"+newID); String oldCard = Identity.getOldIDCard(newID); System.out.println("旧身份证:"+oldCard); /* String dateSource="2000-9-30"; if(id.checkDate(dateSource)) System.out.println("正确时间串:"+dateSource); else System.out.println("错误时间串:"+dateSource); * * */ } }

本文来自 99学术网(www.99xueshu.com),转载请保留网址和出处

上一篇:喜迎教师节晚会主持词下一篇:行业客户需求分析方法