一种加密二维码身份认证系统
阅读说明:本技术 一种加密二维码身份认证系统 (Encrypted two-dimensional code identity authentication system ) 是由 景征骏 谭琛凯 贝绍轶 赵小荣 蒋文杰 于志敏 于 2019-09-29 设计创作,主要内容包括:本发明涉及一种身份识别的加密技术,具体为一种加密二维码身份认证系统及其方法,包括搭载用户APP的终端、服务器和立体车库工作站;搭载用户APP的终端,包括用户信息获取模块,该模块用于用户注册和身份登录(认证);通信模块,该模块用于向服务器传输和接收信息;显示模块,该模块用于显示服务器传输的信息;服务器,包括用户信息存储模块,该模块用于用户注册;用户信息校验模块,该模块用于用户账户验证;通信模块,该模块用于向用户APP传输和接收信息;时间模块,该模块用于产生时间戳;生成明文模块,该模块将时间、用户信息、车库车位和存车取车的信息构成明文字符串。(The invention relates to an encryption technology of identity recognition, in particular to an encrypted two-dimensional code identity authentication system and a method thereof, wherein the encrypted two-dimensional code identity authentication system comprises a terminal carrying a user APP, a server and a stereo garage workstation; the terminal for carrying the user APP comprises a user information acquisition module, and the module is used for user registration and identity login (authentication); a communication module for transmitting and receiving information to and from a server; the display module is used for displaying the information transmitted by the server; the server comprises a user information storage module, a user information processing module and a user registration module, wherein the user information storage module is used for user registration; the user information verification module is used for verifying a user account; a communication module for transmitting and receiving information to a user APP; a time module to generate a time stamp; and generating a plaintext module, wherein the module forms a plaintext character string by the time, the user information, the garage parking place and the information of parking and taking the vehicle.)
技术领域
本发明涉及一种身份识别的加密技术,具体为一种加密二维码身份认证系统及其方法。
背景技术
近年来,随着城市私家汽车的数量急速增长,造成了城市停车位急剧短缺。立体车库相较于统停车方式提高了土地利用率、保护用户的车辆、规范停车位使用。大力发展立体停车技术是解决目前城市停车难的有效途径之一。立体车库所在的位置一般为地下且干扰源较多的地方,网络延迟较大,所以对于此类场所在身份识别上如何实现识别准确率高,安全性好且识别速度是一个有待解决的问题。
车库身份认证一般来说常采用人工方式、门禁卡、人工智能识别等方式。人工方式身份认证是传统的认证方式,认证安全性较高,但是效率较低而且成本比较高。门禁卡方式效率较高但是安全性较低,而且门禁卡不利于公共车位的分配。人工智能识别智能识别效率较低而且安全性较差容易泄露用户信息。所以对于城市中大规模部署公用的立体车库,上述方式存在消耗人力物力比较大、识别速度、安全性不足、不利于部署等问题。本文提出的身份认证方案目的是提高用户认证的安全性、可靠性和效率。
发明内容
本发明的目的是为了解决上述技术不足,提供了一种加密二维码身份认证系统及其方法,可提高用户认证的安全性、可靠性和效率。
为解决上述技术问题,本发明所采用的技术方案为:一种加密二维码身份认证系统,包括搭载用户APP的终端、服务器和立体车库工作站;
所述搭载用户APP的终端,包括用户信息获取模块,该模块用于用户注册和身份登录(认证);
通信模块,该模块用于向服务器传输和接收信息;
显示模块,该模块用于显示服务器传输的信息;
所述服务器,包括用户信息存储模块,该模块用于用户注册;
用户信息校验模块,该模块用于用户账户验证;
通信模块,该模块用于向用户APP传输和接收信息;
时间模块,该模块用于产生时间戳;
生成明文模块,该模块将时间、用户信息、车库车位和存车取车的信息构成明文字符串;
RSA加密模块,该模块通过对应立体车库的公钥对明文进行加密生成密文;
二维码编码模块,该模块将密文数据编码成为二进制图片;
所述立体车库工作站,包括二维码扫码器,用于读取用户二维码信息将信息(密文)传输到工作站电脑中;
RSA解密模块,该模块通过工作站中保存的私钥对密文进行解密;
用户信息模块,该模块通过对明文的分解得到用户信息;
时间模块,该模块用于产生时间戳;
校验模块,该模块用于校验明文格式,保证二维码正确性;
外部模块,该模块用于立体车库控制。
所述搭载用户APP的终端,用于用户使用用户信息获取模块注册账户密码或登录验证,然后通过终端的通信模块和显示模块选择对应车库申请,验证二维码;服务器生成成功通过通信模块和显示模块在用户APP上显示对应的二维码;假如验证失败,则用户再次在手机上申请产生一个新的QR二维码验证。
作为优选,所述服务器,用于使用通信模块和用户信息存储模块存储每个用户的个人信息,包括车牌号、手机号和身份证;服务器使用通信模块监听消息,当接到申请时使用用户信息校验模块验证用户信息,验证失败则向APP发送账户密码错误,验证成功用时间模块生成时间然后通过生成明文模块将用户信息(车牌号,手机号)、生产日期、车库编号、车位编号、存车(取车)组成(可以根据需求设定格式)明文;通过RSA加密模块使用对应车库的公钥对信息进行加密,将加密后的密文通过二维码编码模块组成QR二维码通过通信模块发送给用户。
作为优选,所述立体车库工作站;用于使用外接的二维码扫码器读取用户二维码得到密文,然后通过RSA解密模块解密得到明文;通过用户信息模块将明文分解成用户信息通过时间模块和校验模块对用户信息进行校验,验证成功后存储信息并调用外部模块存车取车。
为解决上述技术问题,本发明所采用的技术方案为:一种加密二维码身份认证方法,包括如下步骤:
步骤一,用户申请验证二维码;用户首先在用户APP中登录,然后选择需要停车(取车)的车库,并向服务器发出申请;
步骤二,服务器验证申请用户的用户信息,通过后分配车库车位;
步骤三,将时间、用户信息、车库车位和存车取车的信息构成明文字符串;
步骤四,通过对应立体车库的公钥对明文进行加密生成密文并组成QR二维码;
步骤五,将QR二维码发送给用户;
步骤六,用户展示二维码,由扫码器读取用户二维码;
步骤七,通过私钥进行解密得到明文字符串,分解字符串得到用户信息验证成功。
本发明所达到的有益效果:本发明的加密二维码身份认证系统及其方法,通过对身份信息进行加密和解密,从而可提高用户认证的安全性、可靠性和效率。
附图说明
图1为加密二维码身份认证系统的结构示意图。
图2为加密二维码身份认证系统的用户认证流程时序图。
图3为加密二维码身份认证系统的用户APP和服务器模块图。
图4为加密二维码身份认证系统的立体车库工作站模块图。
具体实施方式
下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
如图所示:一种加密二维码身份认证系统,包括搭载用户APP的终端、服务器和立体车库工作站;
所述搭载用户APP的终端,包括用户信息获取模块,该模块用于用户注册和身份登录(认证);
通信模块,该模块用于向服务器传输和接收信息;
显示模块,该模块用于显示服务器传输的信息;
所述服务器,包括用户信息存储模块,该模块用于用户注册;
用户信息校验模块,该模块用于用户账户验证;
通信模块,该模块用于向用户APP传输和接收信息;
时间模块,该模块用于产生时间戳;
生成明文模块,该模块将时间、用户信息、车库车位和存车取车的信息构成明文字符串;
RSA加密模块,该模块通过对应立体车库的公钥对明文进行加密生成密文;
二维码编码模块,该模块将密文数据编码成为二进制图片;
所述立体车库工作站,包括二维码扫码器,用于读取用户二维码信息将信息(密文)传输到工作站电脑中;
RSA解密模块,该模块通过工作站中保存的私钥对密文进行解密;
用户信息模块,该模块通过对明文的分解得到用户信息;
时间模块,该模块用于产生时间戳;
校验模块,该模块用于校验明文格式,保证二维码正确性;
外部模块,该模块用于立体车库控制。
所述搭载用户APP的终端,用于用户使用用户信息获取模块注册账户密码或登录验证,然后通过终端的通信模块和显示模块选择对应车库申请,验证二维码;服务器生成成功通过通信模块和显示模块在用户APP上显示对应的二维码;假如验证失败,则用户再次在手机上申请产生一个新的QR二维码验证。
所述服务器,用于使用通信模块和用户信息存储模块存储每个用户的个人信息,包括车牌号、手机号和身份证;服务器使用通信模块监听消息,当接到申请时使用用户信息校验模块验证用户信息,验证失败则向APP发送账户密码错误,验证成功用时间模块生成时间然后通过生成明文模块将用户信息(车牌号,手机号)、生产日期、车库编号、车位编号、存车(取车)组成(可以根据需求设定格式)明文;通过RSA加密模块使用对应车库的公钥对信息进行加密,将加密后的密文通过二维码编码模块组成QR二维码通过通信模块发送给用户。
所述立体车库工作站;用于使用外接的二维码扫码器读取用户二维码得到密文,然后通过RSA解密模块解密得到明文;通过用户信息模块将明文分解成用户信息通过时间模块和校验模块对用户信息进行校验,验证成功后存储信息并调用外部模块存车取车。
一种加密二维码身份认证方法,包括如下步骤:
步骤一,用户申请验证二维码;用户首先在用户APP中登录,然后选择需要停车(取车)的车库,并向服务器发出申请;
步骤二,服务器验证申请用户的用户信息,通过后分配车库车位;
步骤三,将时间、用户信息、车库车位和存车取车的信息构成明文字符串;
步骤四,通过对应立体车库的公钥对明文进行加密生成密文并组成QR二维码;
步骤五,将QR二维码发送给用户;
步骤六,用户展示二维码,由扫码器读取用户二维码;
步骤七,通过私钥进行解密得到明文字符串,分解字符串得到用户信息验证成功。
对本发明作进一步详细的说明;
1.import rsa#引入rsa加密算法
def rsaEncrypt(str):
#生成公钥、私钥
(pubkey,privkey)=rsa.newkeys(512)
生成512位RSA公钥和私钥,将私钥保存在立体车库工作站,将公钥保存在服务器。
2.用户APP发送申请
def Application_Verification():
#通信模块
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)#AF_INET服务器之间网络通信SOCK_STREAM流式socket,for TCP s.connect(('服务器的ip',端口号))
except socket.error as msg:
print(msg)
print(sys.exit(1))#链接错误
#用户信息获取模块
(name,password,chose)=input(″″)#输入账号,密码,选择的车库,存车取车
s.send(name,password)#向服务器发送账号,密码
用户和服务器通信通过socket for TCP通信,通信失败显示连接错误。用户通过用户信息获取模块注册账户密码。用户输入账号,密码通过用户信息获取模块验证用户。
3.验证用户密码
使用用户信息校验模块调用用户信息存储模块中存储的用户信息,并返回校验结果。
4.服务器组成明文
def server():#通信模块
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.listen(10)#服务器监听
(name,password)=s.accept()#服务器接收消息
if(checkmatch(name,password,userfile))
fd=open(userfile)#读取成功打开用户信息
garage=open(chose[0])#打开车库信息
time==time.clock()(计时器)#时间模块
#生成明文模块
data=time+fd[2]+fd[3]+fd[4]+garage[0]+garage[i]+chose[1]
else:
s.send(false)
服务器使用通信模块和用户信息存储模块存储每个用户的个人信息,包括车牌号、手机号、身份证等。服务器使用通信模块监听用户申请,当服务器接收到用户消息打开用户文件验证账户和密码。验证失败则向APP发送账户密码错误,验证成功用生成明文模块将用户信息(车牌号,手机号等)、生产日期、车库编号、车位编号、存车(取车)组成(可以根据需求设定格式)明文。
5.服务器加密和组成二维码并发送
def server_1(str):
#公钥加密RSA加密模块
crypto=rsa.encrypt(content,pubkey)
#生成QR二维码图像
#二维码编码模块
img=qrcode.make(crypto)
img.save
fhead=struct.pack(img)#将img以128sq的格式打包
s.send(fhead)
通过RSA加密模块使用对应车库的公钥对信息进行加密,将加密后的密文通过二维码编码模块组成QR二维码将QR二维码保存在服务器然后将img以128sq的格式打包通过服务器发送到手机。
6.手机APP接收二维码
def Receive():
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.listen(10)
fileinfo_size=struct.calcsize('128sq')
buf=sock.recv(fileinfo_size)#接收图片名
#显示模块
plt.imshow(img)#显示二维码
手机APP通过通信模块接收128sq的格式的图片,通过显示模块显示图片。
7..验证明文是否正确
Def verify(str):#校验模块
con=content.decode('utf-8')
con1,con2...cont=con[i:j]
#时间模块
time==time.clock()(计时器)
if con1==time and len(con2)==set up...
return true
else:
return false
通过校验模块将明文分解成用户信息通过时间模块和相应信息的长度来校验用户信息。
8.工作站接收二维码
立体车库工作站通过外接的二维码扫码器读取用户二维码得到密文,然后通过RSA解密模块解密得到明文。通过用户信息模块将明文分解成用户信息通过时间模块和校验模块对用户信息进行校验,验证成功后存储信息并调用外部模块存车取车,验证失败显示验证失败。
以上仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
- 上一篇:一种医用注射器针头装配设备
- 下一篇:叫号评价的方法及装置