使用EZ100PU智能读卡器在Ubuntu系统读取身份证信息

原文链接:Reading ID Card Data in Ubuntu with EZ100PU Smart Card Reader (Thai ID Edition) 由Jean-Luc Aufranc撰写。

有人让我帮忙在一台运行Windows 7的电脑上配置一个智能读卡器,从而可以使政府电脑能读取到身份证信息。这使得我十分好奇如果把读卡器连接到我的Ubuntu笔记本电脑上到底会发生什么呢?我是否真能够读取身份证的信息呢?于是,我决定用泰国身份证试一试。

EZ100PU智能读卡器

我们先来看看这台读卡器。

EZ100PU智能读卡器的外包装
EZ100PU智能读卡器的外包装

这款FAST ID 的 EZ100PU智能卡读写器是符合ISO7816标准。用户可以在产品页面上查看到具体的型号,但搜索EZ100PU的时候只显示了制造商可能是中国台湾的讯想科技有限公司。其他信息就没有更多了。

EZ100PU智能读卡器及驱动光盘
EZ100PU智能读卡器及驱动光盘

该USB智能读卡器随附有一张驱动光盘,其中包含了适用于Windows、Linux、Mac OS和Android系统的驱动程序,并且带有演示程序和C++、Visual Basic .NET和C# 示例代码的SDK。正如我们将在下面进一步要看到的,该产品无需Linux驱动程序,因为它是开箱即用的。

Alcor智能卡控制器使用的RX-N99B-2印刷电路板
Alcor智能卡控制器使用的RX-N99B-2印刷电路板

该板(RX-N99B-2)的设计非常简单,只有主芯片:Alcor AU9560 USB智能卡读取器。也可以在PCB的左下方看到智能卡插槽。不过,该板的另一侧就只有一个智能卡插槽了。

PCB另一侧的智能卡插槽
PCB另一侧的智能卡插槽

在Ubuntu 18.04系统使用智能读卡器

将读卡器连接到笔记本电脑,然后插入一张泰国身份证(接触式智能卡)。

EZ100PU智能读卡器连接到笔记本电脑并插入身份证
EZ100PU智能读卡器连接到笔记本电脑并插入身份证

好消息是,该智能卡被读卡器内核自动检测为EMV智能卡了。


在这里我需要从网络上搜索有关信息。我在Linuxmint上找到了一篇介绍如何操作读卡器并读取西班牙身份证信息的文章

在这里需要安装一些软件包,注意:并不是所有包都需要,主要是pcscdpcsc-tools


现在,我在读卡器上运行“scan”程序:


我检测到了Alcor Micro AU9560,并且它不知道怎么地就检测到了泰国护照,是不是因为用来创建卡的程序设置有错误?

smartcard_list.txt 中还有其他几个专门用于泰国身份证的代码。我想可能需要检查该文件来查看所有支持的卡的类型。以下是带有“Thai”的字符串,仅供参考:

Thai GSM UICC (Telecommunication)
Thai id card (Other)
Seven-Eleven Value Card / Smart Purse – Thailand (Other)
Thailand National ID (eID)
Thai National ID Card (eID)
Thai National ID Card (eID)
Thai (passport)
Truemove H Thailand (Telecommunication)
True Money Touch Sim (Thailand)
Seven-Eleven Value Card / Smart Purse – Thailand (Contactless) (Other)
Thai Passport 2010, 2011
Thai Passport 2005

小标题:读取解码身份证数据

我目前可以使用读卡器读取硬件和卡。一切看起来也都还不错。所以,如果能够读取和解码泰国身份证内的数据就更好了。而我刚好在GitHub上看到,一个叫做Bouroo的用户使用PythonNodeJS编程语言编写代码就做到了这一点。

我接下来会用Python脚本来做这件事。但首先需要要做的是安装一些依赖包:


现在,运行该脚本,它会逐步提取数据:


我从输出中删除了个人信息,可以确定的是屏幕上的确正确显示了身份证上的所有内容了,包括泰语的姓名和地址。该Python脚本还将存储在ID卡中的照片保存下来了,并命名为<CID>.jpg,其中的CID是身份证编号。

分享这篇文章
订阅评论
提醒
0 评论
内联反馈
查看所有评论