1.互联网真人认证及身份证认证相关
https://dun.163.com/product/certification?from=baiduP_XXRZ_C190530P2#scene
![](https://img.haomeiwen.com/i5117013/154c28ba4c95b0d4.png)
实证认证
提交姓名、身份证号、身份证正反面信息
用于电商、游戏、直播、金融等需要身份证证件的场景
实人认证
提交姓名、身份证号、用户人像照信息,判断用户头像是否为身份证本人
活体检测
根据提示,做出相应动作:张嘴、眨眼,左转头等,SDK实时采集动态信息,判断用户动作是否正确,从而判断是否为活体、真人
常与实人认证业务搭配使用,活体检测成功后,会留下一张正面人像照,用于实人认证
2. 身份证读卡器
windows,各家身份证读卡器厂家都提供API。 在android上也有越来越多的厂家提供了,
//先扫描卡, 其中devPath指的是设备访问结点(串口或USB文件节点)
StartFindIDCard(devPath)
//再选择卡
SelectIDCard(devPath)
//再读基本信息的字符串
CardMsg cardMsg = new CardMsg();
int ret = ReadBaseMsgToStr(cardMsg);
// 展示信息
if(ret==0){
show = "姓名:"+cardmsg.name+'\n'
+"性别:"+cardmsg.sex+'\n'
+"民族:"+cardmsg.nation_str+"族"+'\n'
+"出生日期:"+cardmsg.birth_year+"-"+cardmsg.birth_month+"- "+cardmsg.birth_day+'\n'
+"住址:"+cardmsg.address+'\n'
+"身份证号码:"+cardmsg.id_num+'\n'
+"签发机关:"+cardmsg.sign_office+'\n'
+"有效期起始日期:"+cardmsg.useful_s_date_year+"- "+cardmsg.useful_s_date_month+"-"+cardmsg.useful_s_date_day+'\n'
+"有效期截止日期:"+cardmsg.useful_e_date_year+"- "+cardmsg.useful_e_date_month+"-"+cardmsg.useful_e_date_day+'\n';
bm = cardmsg.photo;//这就是照片信息,未解码之前的
byte[] bdata = null;
//关键的照片解码,是被封装成工具库了
WltDec dec = new WltDec();
byte[] bip = dec.decodeToBitmap(bm);
Bitmap bp = BitmapFactory.decodeByteArray(bip, 0, bip.length);
if(bp != null)
{
image.setImageBitmap(bmpResize(bp));
}
}
3 我的小总结
- 手机线上要求安全高的应用场景可能是这样:让用户输入身份证号和姓名,缓存本地。 然后活体检测,拍发正面人像照再调实人认证
在这个过程中,用户输入身份证号和姓名,可以用身份证OCR识别来做辅助输入
- 线下要求安全一般的应用场景: 比如一般的酒店前台,刷身份证读出姓名和身份证号以及证里的解码照片。 人工肉眼比对。这时候只需要身份证读卡器的API即可。
网友评论