一种二维码加密方法、存储介质、设备及系统
技术领域
本发明涉及互联网安全领域,具体涉及一种二维码加密方法、存储介质、设备及系统。
背景技术
二维码是由Denso公司于1994年9月研制的一种矩阵二维码符号,它具有一维条码及其它二维条码所具有的信息容量大、可靠性高、可表示汉字及图象多种文字信息、保密防伪性强等优点。二维码是在一个矩形空间平面上通过黑、白像素块在矩阵中的不同分布和编码来存储数据,黑、白像素块不同的排列方式决定了该二维码具体存储的数据内容。
随着互联网应用的日益丰富,二维码在认证、支付、广告推广等应用场景中被广泛应用。当前,二维码的编码解码方式均是公开的,因此二维码中的数据能够被轻易的解析出来,即使采用加密算法对数据进行加密,但是也能被不法分子轻易的破解,致使二维码在网络传输中,以及用户的使用中,安全性极低,用户的经济等利益极易遭到损失。
发明内容
针对现有技术中存在的缺陷,本发明实施例提供一种二维码加密方法,有效保证二维码的使用安全。本发明实施例还提供了相应的设备和存储介质。
本发明第一方面提供一种二维码加密方法,包括:
创建覆盖图层,将原始二维码中白色像素块复制于覆盖图层上,且保持覆盖图层上的白色像素块位置与原始二维码中白色像素块位置相同;
以编码方式对覆盖图层上每个白色像素块位置进行记录,生成字符串,对字符串加密同时生成解密密码;
覆盖图层中白色像素块的位置随机进行变换,然后覆盖图层覆盖于原始二维码上形成加密二维码;
当且仅当获取解密密码后,获得字符串,按照字符串中记录的白色像素块位置,对加密二维码中覆盖图层上的色像素块位置进行还原。
结合第一方面,在第一种可能的实现方式中,所述加密二维码中每个用于显示像素块的位置,若当前位置含有覆盖图层的白色像素块,则该位置显示白色像素块,若当前位置不含有覆盖图层的白色像素块,则该位置显示原始二维码上位于该位置的像素块。
结合第一方面第一种可能的实现方式,在第二种可能的实现方式中,所述原始二维码中包括定位符区域,当将原始二维码中白色像素块复制于覆盖图层上时,原始二维码中定位符区域复制于覆盖图层上,当覆盖图层中白色像素块的位置随机进行变换时,白色像素块的位置在定位符区域位置以外进行变换。
结合第一方面,在第三种可能的实现方式中,所述以编码方式对覆盖图层上每个白色像素块位置进行记录,生成字符串,具体步骤为:
采用两种数字的标记方式,依次对覆盖图层上每个单元位置进行判断,若当前位置上为白色像素块,则记为一种数字,若当前位置上不含有白色像素块,则记为另一种数字,从而得到由多个数字组成的字符串。
结合第一方面,在第四种可能的实现方式中,对于形成的加密二维码,设定定时周期,在定时周期内,覆盖图层中白色像素块的位置再次随机进行变换。
结合第一方面,在第五种可能的实现方式中,当以编码方式对覆盖图层上每个白色像素块位置进行记录生成字符串之后,还包括:
新增或删减覆盖图层上白色像素块的数量,并对新增或删减白色像素块进行标记;
若为新增覆盖图层上白色像素块的数量,则在对加密二维码中覆盖图层上的色像素块位置进行还原时,先按照标记删除新增的白色像素块;
若为删减覆盖图层上白色像素块的数量,则在对加密二维码中覆盖图层上的色像素块位置进行还原时,先按照标记添加已删除的白色像素块。
本发明第二方面提供一种服务器,所述服务器包括:
复制执行单元,其用于创建覆盖图层,并将原始二维码中白色像素块复制于覆盖图层上,且保持覆盖图层上的白色像素块位置与原始二维码中白色像素块位置相同;
生成单元,其用于以编码方式对覆盖图层上每个白色像素块位置进行记录,生成字符串,以及对字符串加密并生成解密密码;
变换单元,其用于将覆盖图层中白色像素块的位置随机进行变换,然后将覆盖图层覆盖于原始二维码上形成加密二维码;
存储单元,其用于存储生成单元生成的字符串和解密密码,以及变换单元形成的加密二维码;
发送单元,其用于向其它设备发送存储单元存储的字符串、解密密码和加密二维码。
本发明第三方面提供一种客户端,所述客户端包括:
接收单元,其用于接收加密二维码和解密密码;
验证单元,其用于验证接收单元接收的解密密码是否正确,若正确,则驱使接收单元接收字符串,反之,则结束;
还原单元,其用于按照接收单元接收的字符串中记录的白色像素块位置,对加密二维码中覆盖图层上的色像素块位置进行还原。
本发明第四方面提供一种存储介质,该存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
创建覆盖图层,将原始二维码中白色像素块复制于覆盖图层上,且保持覆盖图层上的白色像素块位置与原始二维码中白色像素块位置相同;
以编码方式对覆盖图层上每个白色像素块位置进行记录,生成字符串,对字符串加密同时生成解密密码;
覆盖图层中白色像素块的位置随机进行变换,然后覆盖图层覆盖于原始二维码上形成加密二维码;
当且仅当获取解密密码后,获得字符串,按照字符串中记录的白色像素块位置,对加密二维码中覆盖图层上的色像素块位置进行还原。
本发明第五方面提供一种二维码加密系统,包括:
覆盖模块,其用于创建覆盖图层,然后将原始二维码中白色像素块复制于覆盖图层上,且保持覆盖图层上的白色像素块位置与原始二维码中白色像素块位置相同;
生成模块,其用于以编码方式对覆盖图层上每个白色像素块位置进行记录,生成字符串,对字符串加密同时生成解密密码;
变换模块,其用于对覆盖图层中白色像素块的位置随机进行变换,然后覆盖图层覆盖于原始二维码上形成加密二维码;
还原执行模块,其用于当且仅当获取解密密码后,获得字符串,按照字符串中记录的白色像素块位置,对加密二维码中覆盖图层上的色像素块位置进行还原。
与现有技术相比,本发明的优点在于:通过创建覆盖图层,将原始二维码中白色像素块复制于覆盖图层上,当对覆盖图层上每个白色像素块位置进行记录形成字符串后,覆盖图层中白色像素块的位置随机进行变换,然后覆盖图层覆盖于原始二维码上形成加密二维码,后续只有获知字符串,按照字符串中记录的白色像素块位置,才能对加密二维码中覆盖图层上的白色像素块位置进行还原,有效保证二维码的使用安全。
附图说明
图1为本发明实施例中一种二维码加密方法的流程图;
图2为本发明实施例中一种服务器的结构示意图;
图3为本发明实施例中一种客户端的结构示意图;
图4为本发明实施例中定位符处理的结构示意图;
图5为本发明实施例中白色像素块覆盖于原始二维码上操作的示意图;
图6为本发明实施例中覆盖图层上白色像素块标记时的示意图;
图7为本发明实施例中对整个原始二维码覆盖处理的示意图。
具体实施方式
本发明实施例提供了一种二维码加密方法,用于对原始二维码进行加密,从而有效保证二维码的使用安全。本发明实施例还提供了相应的设备、存储介质和系统。
以下结合附本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1所示,本发明实施例提供的一种二维码加密方法的一实施例包括:
S1:创建覆盖图层,将原始二维码中白色像素块复制于覆盖图层上,且保持覆盖图层上的白色像素块位置与原始二维码中白色像素块位置相同。
本发明实施例中,二维码由多个像素块按照矩阵的排列方式组成,且二维码包括三个定位符区域,分别位于左上角、右上角和左下角,像素块包括白色像素块和黑色像素块,白色像素块和黑色像素块按照特定顺序以矩阵排列方式形成二维码,且不同的排列方式决定二维码存储数据的不同。
S2:以编码方式对覆盖图层上每个白色像素块位置进行记录,生成字符串,对字符串加密同时生成解密密码;
S3:覆盖图层中白色像素块的位置随机进行变换,然后覆盖图层覆盖于原始二维码上形成加密二维码,具体的覆盖方式可以参见图5所示,将白色像素块覆盖于原始二维码上。对于整个覆盖过程,可以参见图7所示,图7中,从左至右,第一个为原始二维码,第二个为裁切定位符,并在定位符上随机填充黑色像素块后形成的二维码,第三个为将白色像素块覆盖于原始二维码上的过程,第四个为在原始二维码覆盖白色像素块后形成的二维码。
S4:当且仅当获取解密密码后,获得字符串,按照字符串中记录的白色像素块位置,对加密二维码中覆盖图层上的白色像素块位置进行还原,覆盖图层上的白色像素块回到原始位置,不会对原始二维码上的黑色像素块进行遮挡,此时还原后的加密二维码样式与原始二维码样式相同。
本发明实施例中,对于形成的加密二维码,加密二维码中用于显示像素块的位置,若当前位置含有覆盖图层的白色像素块,则该位置显示白色像素块,即覆盖图层的白色像素块若和原始二维码上的黑色像素块或白色像素块重合,则该位置显示的为白色像素块,通过覆盖图层上白色像素块对原始二维码上的黑色像素块的遮挡,改变原有的像素块布局;若当前位置不含有覆盖图层的白色像素块,则该位置显示原始二维码上位于该位置的像素块。具体的,结合一实例对本发明实施例中形成的加密二维码进行说明:
假设覆盖图层中白色像素块的位置进行随机变换后,第一排中按从左至右顺序,依次为白、空、空、白、白、空、白,覆盖图层最初仅是复制,故覆盖图层上会存在空位,原始二维码第一排中按从左至右顺序,依次为黑、白、黑、白、白、白、黑,则将覆盖图层覆盖于原始二维码上后,加密二维码第一排中按从左至右顺序,依次为白、白、黑、白、白、白、白。
本发明实施例中,加密二维码的安全性随着像素块个数提高,按照排列组合公式,能产生个不同排序,m为整个二维码区域能容纳的像素块总数,n为拷贝出来的白色像素块个数,如果整个区域有50个像素块空间,白色像素块有30个的话,按公式计算C(50,30)可得出47129212243960个数的排列种类,有效保障二维码的应用安全。
可选地,在上述图1对应的实施例的基础上,本发明实施例提供的一种二维码加密方法的第一个可选实施例中,当将原始二维码中白色像素块复制于覆盖图层上时,原始二维码中定位符区域复制于覆盖图层上,当覆盖图层中白色像素块的位置随机进行变换时,白色像素块的位置在定位符区域位置以外进行变换。
本发明实施例中,覆盖图层中白色像素块的位置随机进行变换时,白色像素块的位置在定位符区域位置以外进行变换,因二维码在识别的过程中需要通过定位符实现定位,故白色像素块的位置在变换时,在定位符区域位置以外进行变换,不遮挡定位符,避免后续还需进行相应的移动处理。具体的参见图4所示,针对原始二维码中的定位符区域,在处理时,先将原始二维码中的定位符区域上的定位符分割出,然后在定位符区域上随机填充黑色像素块,使二维码保持矩形的整体结构,后续在还原时,则先移除定位符区域上填充的黑色像素块,然后将定位符进行还原。
可选地,在上述图1对应的实施例的基础上,本发明实施例提供的一种二维码加密方法的第二个可选实施例中,以编码方式对覆盖图层上每个白色像素块位置进行记录,生成字符串,具体步骤为:
采用两种数字的标记方式,依次对覆盖图层上每个单元位置进行判断,若当前位置上为白色像素块,则记为一种数字,若当前位置上不含有白色像素块,则记为另一种数字,从而得到由多个数字组成的字符串。
以下结合一实例对图1对应的第二个可选实施例进行具体说明。
采用“1”和“0”两种数字,对覆盖图层上每个单元位置的像素块进行标记,二维码中,每个单元位置设有一个像素块,覆盖图层上第一排按从左至右顺序,依次为白、空、空、白、白、空、白,“1对应白,“0”对应空,从而标记得到“1001101”,则组成的字符串为“1001101”,通过此种方式对覆盖图层上每个白色像素块的原始位置进行记录。可以参见图6所示距离,白色像素块位置记为“1”,空白位置记为“0”,针对覆盖图层上白色像素块的具体排布,进行标记。
可选地,在上述图1对应的实施例的基础上,本发明实施例提供的一种二维码加密方法的第三个可选实施例中,对于形成的加密二维码,设定定时周期,在定时周期内,覆盖图层中白色像素块的位置再次随机进行变换。
本发明实施例中,通过定时周期的设置,在定时周期的时间间隔内,覆盖图层中白色像素块的位置随机进行变换,避免加密二维码的样式始终保持不变,进一步提升加密后二维码的安全性。
可选地,在上述图1对应的实施例的基础上,本发明实施例提供的一种二维码加密方法的第四个可选实施例中,当以编码方式对覆盖图层上每个白色像素块位置进行记录生成字符串之后,还包括:
新增或删减覆盖图层上白色像素块的数量,并对新增或删减白色像素块进行标记;
若为新增覆盖图层上白色像素块的数量,则在对加密二维码中覆盖图层上的色像素块位置进行还原时,先按照标记删除新增的白色像素块;
若为删减覆盖图层上白色像素块的数量,则在对加密二维码中覆盖图层上的色像素块位置进行还原时,先按照标记添加已删除的白色像素块。
本发明实施例中,认为增减或删减覆盖图层上白色像素块的数量,进一步减少被不法人员破解的概率,后续在还原时,按照标记,先还原增减或删减的白色像素块。
在图1对应的所有二维码加密方法的实施例,通过创建覆盖图层,将原始二维码中白色像素块复制于覆盖图层上,当对覆盖图层上每个白色像素块位置进行记录形成字符串后,覆盖图层中白色像素块的位置随机进行变换,然后覆盖图层覆盖于原始二维码上形成加密二维码,后续只有获知字符串,按照字符串中记录的白色像素块位置,才能对加密二维码中覆盖图层上的白色像素块位置进行还原,有效保证二维码的使用安全。
参见图2所示,本发明实施例提供的一种服务器的一实施例包括:
复制执行单元,其用于创建覆盖图层,并将原始二维码中白色像素块复制于覆盖图层上,且保持覆盖图层上的白色像素块位置与原始二维码中白色像素块位置相同;
生成单元,其用于以编码方式对覆盖图层上每个白色像素块位置进行记录,生成字符串,以及对字符串加密并生成解密密码;
变换单元,其用于将覆盖图层中白色像素块的位置随机进行变换,然后将覆盖图层覆盖于原始二维码上形成加密二维码;
存储单元,其用于存储生成单元生成的字符串和解密密码,以及变换单元形成的加密二维码;
发送单元,其用于向其它设备发送存储单元存储的字符串、解密密码和加密二维码。
本发明实施例中,其它设备可以为智能移动设备、平板电脑等硬件设备,也可以为能够接收数据、与服务器交互、显示二维码的应用程序类客户端。
可选地,在上述图2对应的实施例的基础上,本发明实施例提供的一种服务器的第一个可选实施例中,存储单元将字符串、解密密码和加密二维码三者按照一一对应的关系进行存储,后续将解密密码和加密二维码发送给其它设备后,只有在接收到其它设备返回的正确解密密码,才会继续发送字符串。
参见图3所示,在图2对应的实施例的基础上,本发明实施例提供的一种客户端的一实施例包括:
接收单元,其用于接收加密二维码和解密密码;
验证单元,其用于验证接收单元接收的解密密码是否正确,若正确,则驱使接收单元接收字符串,反之,则结束;
还原单元,其用于按照接收单元接收的字符串中记录的白色像素块位置,对加密二维码中覆盖图层上的白色像素块位置进行还原。
可选地,在上述图3对应的实施例的基础上,本发明实施例提供的一种客户端的第一个可选实施例中,客户端为智能移动设备,当进入扫描二维码的使用场景时,服务器的发送单元通过网络数据通道将加密二维码发送给智能移动设备,此时二维码是加密的,若进行扫码,是无法读取出正确数据,发送单元通过短信或邮件等方式将解密密码发送给客户端,用户在客户端输入收到的解密密码,然后客户端将解码密码发送给服务器,服务器验证正确后,将字符串发送给客户端,然后还原单元根据字符串,对加密二维码中覆盖图层上的白色像素块位置进行还原。
本发明实施例提供的一种存储介质的一实施例包括:存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
创建覆盖图层,将原始二维码中白色像素块复制于覆盖图层上,且保持覆盖图层上的白色像素块位置与原始二维码中白色像素块位置相同;
以编码方式对覆盖图层上每个白色像素块位置进行记录,生成字符串,对字符串加密同时生成解密密码;
覆盖图层中白色像素块的位置随机进行变换,然后覆盖图层覆盖于原始二维码上形成加密二维码;
当且仅当获取解密密码后,获得字符串,按照字符串中记录的白色像素块位置,对加密二维码中覆盖图层上的白色像素块位置进行还原。
可选地,在上述存储介质实施例的基础上,本发明实施例提供的一种存储介质的第一个可选实施例中,存储介质可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于:电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可选地,在上述存储介质的实施例及第一个可选实施例的基础上,本发明实施例提供的一种存储介质的第二个可选实施例中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可选地,在上述存储介质的实施例及第一、第二个可选实施例的基础上,本发明实施例提供的一种存储介质的第三个可选实施例中,可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
本发明实施例提供的一种二维码加密系统的一实施例包括:
覆盖模块,其用于创建覆盖图层,然后将原始二维码中白色像素块复制于覆盖图层上,且保持覆盖图层上的白色像素块位置与原始二维码中白色像素块位置相同;
生成模块,其用于以编码方式对覆盖图层上每个白色像素块位置进行记录,生成字符串,对字符串加密同时生成解密密码;
变换模块,其用于对覆盖图层中白色像素块的位置随机进行变换,然后覆盖图层覆盖于原始二维码上形成加密二维码;
还原执行模块,其用于当且仅当获取解密密码后,获得字符串,按照字符串中记录的白色像素块位置,对加密二维码中覆盖图层上的色像素块位置进行还原。
本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。