基于指纹识别的支付系统的设计与实现
2015-08-22朱静闽芳陈腊梅陈健鹏陈晓刚
朱静 闽芳 陈腊梅 陈健鹏 陈晓刚
摘要:指纹支付是支付方式的一个新的方向。指纹识别技术是依靠指纹的唯一性,通过对指纹的采样、特征值提取来实现身份识别的技术。和传统的帐号加密码或是Ic卡扫描识别等身份识别方式相比,指纹支付具有更高的安全性、不会遗忘、丢失、不变性、唯一性、防伪性能好和使用方便等优点。本文设计并实现了一个通过指纹识别方式,完成支付等功能的系统,同时设计了无线功能,可以完成主机和客户端的无线数据通讯、同步功能。该系统可以方便快捷地完成支付功能。
关键词:指纹识别;支付
中图分类号:TP393.02 文献标识码:A DOI:10.3969/j.issn.1003-6970.2015.05.028
0 引言
当前,人们进行支付时,多采用现金、充值IC卡的方式。随着IC卡技术的普及,越来越多商户提供了充值IC卡的支付方式,当人们在一些商户消费时,无需现金,直接用充值卡进行支付。但是用IC卡支付的方式存在不少弊病,例如:不易保管,容易丢失等,而且仅仅依靠密码或是签名进行身份验证,并不能真正地确认持卡人是否为其真正的主人,那么一旦用户的IC卡丢失或是被窃,就会有被盗用的危险。
指纹识别技术是利用人类指纹的唯一性,通过对指纹图案的采样、特征信息提取并与库存样本相比较的过程来实现身份识别的技术。与帐号加密码、充值Ic卡等传统的身份识别手段相比,指纹识别技术具有不会丢失、不会遗忘、唯一性、不变性、防伪性能好和使用方便等优点,所以已经逐步在门禁、考勤、金融、公共安全等领域得到应用。本文将指纹支付应用到消费领域,设计并完成一种全新的指纹支付系统。
1 指纹支付的概念
指纹支付,也叫指纹消费,是一种利用指纹认证的生物识别技术进行缴费支付的方式。该支付方式采用指纹系统进行消费认证,即顾客使用指纹注册成为商家会员,通过指纹识别即可消费或打折,简化了消费程序。
由于生物识别技术认定的是人本身,而每个人的生物特征,包括指纹在内,都具有唯一性和一定时期内的稳定性,不易被伪造和假冒,所以这一支付方式在一定程度上确保了用户隐私不受侵犯,而且比其他支付方式更便捷。因此,指纹支付将会成为一种新生的支付方式。
使用指纹支付,可以省去办卡的费用、节约资源。在一些需要刷卡消费的场所,比如餐馆、商店、网吧、食堂或是连锁卖场使用指纹支付,无疑是一种更新颖、更时尚的消费方式,给顾客和商家带来便利的同时,也提升顾客的消费体验感。2系统功能设计
本系统实现的功能是将指纹识别技术应用于商户支付,根据应用的需求,需要设计两类用户:注册用户和管理员,功能如下:
注册会员:充值、查询余额、指纹支付;
管理员:建立新账户、会员管理、金额管理;
本系统设计了服务器端和客户端,服务器端和客户端采用无线方式传输数据。当用户在支付时,无需到柜台进行支付,只需在座位上用客户端进行指纹刷卡,就可以将数据传递到服务器端,从而进行支付;
服务器端:提供指纹支付、指纹充值功能,同时可以处理客户端发送来的信息,进行相应处理,处理完成后,将结果返回给客户端;
客户端:通过采集指纹信息,发送给服务器端进行处理,从而完成支付或是充值功能,并接收服务器端返回的信息。
3 系统实现
3.1 硬件设计
本系统服务器端和客户端均采用ST(意法半导体)公司生产的ARM CortexM3内核的STM32F103ZET6的主控MCU。该芯片最高工作频率72MHz,具有512KB的flash存储空间,64KBSRAM,带多达112个I/O口,11个定时器,13个通讯接口。该MCU完全可以满足本系统的功能和性能要求。
本文通过STM32F 103ZET6外接FLASH模块、SD卡模块、LCD模块、LED模块、指纹模块、矩阵键盘模块、NRF24L01无线通讯模块等模块完成本文提到的所需要功能。系统结构如图1所示。
1.指纹模块
指纹模块的CPU是一片DSP芯片,型号为PS1802,指纹采集使用的是CMOS芯片,CMOS芯片主要是对指纹进行“照相”,生成指纹特征值。指纹模块通过USART接口与服务器端或是客户端进行通讯和数据交换。
2.TFT-LCD模块
TFT-LCD,是在亮度、对比度、功耗、寿命、体积以及重量等综合性能上全面赶超CRT的显示器件,并具有触屏功能,通过它来显示点阵汉字以及其他需要显示的信息。
3.FLASH模块
FLASH(闪存)则是一种非易失性内存,本文用它来存储点阵汉字,既能达到快速提取点阵信息的功能,又不占用有限的编程空间SRAM,提高程序的运行效率和空间。
4.NRF24L01模块
该模块主要用来完成服务器端和客户端无线通讯功能,需要选择从功耗、性能上相对合适的无线传输模块,因此本文选择了NRF24L01模块。NRF24L01是NORDIC公司生产的一款无线通信通信芯片,采用FSK调制,内部集成Enhanced Short Burst协议。可以实现点对点或是1对6的无线通信,无线通信速度可以达到2M(bps)。通过它可以实现服务器端和客户端的通讯。
通过对硬件模块功能的分析,明确了各个模块的元器件的选择,最终硬件电路图设计如图2所示。
3.2 数据存储结构
由于用户数量是不确定的,所以无法采用数组方式来存放会员数据,所以本系统考虑采用链表结构来存放数据,节约动态分配空间。链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理。
由于一个用户至少要存储两个指纹的信息,所以需要两个链表来进行数据记录用户及其指纹的信息。另外管理员信息需要单独一个链表来存储,本文创建了三个链表,如图3所示。
3.3 软件模块设计
本系统的所有操作都是以指纹识别为基础,指纹模块与服务器端和客户端都是通过串口进行通讯,主要实现指纹匹配功能、指纹采集功能、指纹删除功能、清空指纹库功能。
指纹匹配功能:将读入的指纹信息与链表中指纹信息进行匹配,如果匹配成功,返回指纹编号,显示指纹对应的用户的信息。如果在一个循环周期内没有搜索到指纹,则返回“匹配失败”。
指纹采集功能:新用户注册时,需要录入两个指纹,因此需要通过指纹采集器进行二次指纹采集,然后制作成指纹模版,并将该模版保存到链表中。
指纹删除功能:当用户不再需要在商户进行消费时,可以将数据进行删除,空出存储空间,便于新会员加入。
清空指纹库功能:提供清空全部指纹功能,可将系统还原至初始化。
指纹匹配算法主要涉及:指纹图像预处理、特征点提取和特征点匹配。图像预处理又包括图像场的计算、分割、均衡化、平滑化、增强、二值化、细化等,通过这些预处理使特征值更容易被提取,如图4所示。
4 结束语
本文将指纹识别技术应用于支付领域,设计并实现了一整套指纹支付系统。该系统包含管理员和普通会员两种用户,方便进行权限控制。同时为了方便用户使用,设计了服务器端和客户端,并采用无线通信方式进行数据传输。该系统极大解决了当前用IC卡进行支付的弊病,提升用户支付体验感,应用前景广阔。