CN111667039A - 一种二维码防伪方法 - Google Patents
一种二维码防伪方法 Download PDFInfo
- Publication number
- CN111667039A CN111667039A CN202010483775.4A CN202010483775A CN111667039A CN 111667039 A CN111667039 A CN 111667039A CN 202010483775 A CN202010483775 A CN 202010483775A CN 111667039 A CN111667039 A CN 111667039A
- Authority
- CN
- China
- Prior art keywords
- data
- dimensional code
- abstract
- target
- counterfeiting
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K19/00—Record carriers for use with machines and with at least a part designed to carry digital markings
- G06K19/06—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
- G06K19/06009—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking
- G06K19/06037—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking multi-dimensional coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K19/00—Record carriers for use with machines and with at least a part designed to carry digital markings
- G06K19/06—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
- G06K19/06009—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking
- G06K19/06046—Constructional details
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及数据安全技术领域,尤其涉及一种二维码防伪方法,包括:将原始数据切分为带编号的多个分片数据,并依次将当前分片数据的摘要与后一分片数据合并成中间数据;将中间数据进行Hash变换获得目标摘要,并用私钥对最后一个目标摘要进行加密,生成加密摘要;将原始数据与加密摘要组成防伪数据,并根据二维码编码方法对防伪数据进行编码,生成二维码。对最后一个摘要签名及验证,节省时间及提高存储容量,解决了二维码附带信息大而导致信息存储量的局限性,避免二维码识别速度降低的问题;对全部摘要签名作分布式存储、校验及引入举报功能,进一步增强二维码的安全性。
Description
技术领域
本发明涉及数据安全技术领域,具体是一种二维码防伪方法,并进一步给出了该方法相应的系统、设备与存储介质。
背景技术
二维码,又称矩阵式二维条形码,是用某种特定的几何图形按一定规律在平面(即二维方向上)分布的黑白相间的图形记录数据符号信息。矩阵式二维条形码是在图像处理技术、组合编码原理等基础上的图形符号自动辨识的码制,以矩阵的形式组成,在矩阵相应元素位置上,用点的出现表示二进制的“1”,不出现表示二进制的“0”,点的排列组合确定了矩阵码所代表的意义。其中,点可以是方点、圆点或其它形状的点。
(1)二维码的编码
编码,是在一个矩形空间通过像素在矩阵中的不同分布进行编码,通常是黑白的。将数据信息按一定规则编码成“0”“1”比特流。在矩阵元素位置(每个独立的小矩形区域,以下称作模块)上,出现方点、圆点或其他形状点来表示“0”或“1”,形状点按照一定规则排布,与图片、声音、文字、签字、指纹等可以数字化的二进制比特流信息对应。
(2)二维码的解码
解码,是编码的逆过程,是通过识别矩阵空间中的模块分布信息,根据排布规则逆推得到比特流信息,再进一步根据编码规则得与图片、声音、文字、签字、指纹等可以数字化的二进制数据信息。通过对矩阵模块的采样获得模块信息是比较常用的一种方法:只需要判断中心点位置是否为黑色即可知道该模块携带的是“0”还是“1”,这一过程称为“采样”。
传统技术的二维码的防伪方法有:
1、结合数据库技术,先读取二维码中保存的唯一标识信息,然后通过网络或其它信息技术远程访问二维码数据库,并将该唯一标识的二维码在数据库中添加访问标记,保证该二维码只能被访问一次,从而实现防伪的目的。这一方式虽然在一定程度上能起到防伪作用,但是不能保证每一次都是真实产品对应的二维码先访问,容易造成真假颠倒;
2、对于现有的电子钥匙,然而在某些需要其他人员临时使用钥匙的情况下,由于其需要先对信息进行授权后方能开启对应的智能锁,且作为信息的载体指纹、声纹等不容易提取借出,其他如密码、图片等方式的载体借出后又不容易回收,或者不方便更改,现存的电子钥匙无法安全有效的应对以上情况。
3、采用隐形二维码和显形二维码相结合,其中隐形二维码主要采用特殊的油墨材料或者印刷工艺相结合,从而实现不可扫描、复印、照相的隐形目的,隐形二维码信息的读取需通过专用二维码识读设备进行,隐形二维码和显形二维码中分别存储不同的信息,通过将两部分二维码中所存信息读出,并通过某种匹配策略实现防伪目的。这种方式需要制作两个二维码,同时对于隐形二维码的制作以及印刷工艺要求较高,使得整体成本增加。
4、在物理设计层面,如二维码的材质、图案等其他方面,对二维码实体图片采用数字水印技术对二维码实现防伪。但物理层面的水印易被破坏,会影响原生成的二维码图片的外观,且使得二维码的生成复杂度增加,另一方面增加了二维码打印成本。
上述传统技术不能从根本上隐藏原始二维码的信息,从源头上防止二维码被篡改,针对这种情况,最新提出新的二维码的防伪方法,比如,将二维码保存的信息进行加密,识读二维码经加密的信息,并通过解密才能够查看二维码中保存的信息,具体可分为如下两种情况:
5.1、对称加密方案
对称加密就是加密和解密使用同一个密钥,将产品的防伪信息使用密钥进行加密,将加密后的密文信息转换成二维码图形。验证时,使用与加密密钥相同的密钥对密文进行解密,得出原始信息。
5.2、非对称加密方案
非对称加密就是加密和解密所使用的不是同一个密钥,通常有两个密钥,称为“公钥”和“私钥”,它们两个必需配对使用,否则不能打开加密文件。这里的“公钥”是指可以对外公布的,“私钥”则不能,只能由持有人一个人知道。
采用数字签名验证的非对称加密技术是对二维码附带信息进行加密。数字签名是利用公钥加密领域技术对数据单元进行密码变换,并附加在数据单元上,通过私钥解密附加数据可以验证数据单元的来源和完整性。数字签名具有身份认证、加密数据保护和签名抗否认的作用,但是该技术会随着二维码附带信息大量增加,使二维码识别速度降低。
发明内容 针对现有技术的不足,本发明提供了一种二维码防伪方法该方法相应的系统、设备与存储介质,以解决现有技术中存在的随着二维码附带信息大量增加,二维码识别速度降低的问题,其具体方案如下:
第一方面,本发明提供了一种二维码防伪方法,所述方法包括:
将原始数据切分为带编号的多个分片数据,并依次将当前分片数据的摘要与后一分片数据合并成中间数据;
将所述中间数据进行Hash变换获得目标摘要,并用私钥对最后一个所述目标摘要进行加密,生成加密摘要;
将所述原始数据与加密摘要组成防伪数据,并根据二维码编码方法对所述防伪数据进行编码,生成二维码。
优选地,所述方法还包括:将所述私钥对应的公钥进行广播,以便客户端根据所述公钥对所述加密摘要进行验证。
优选地,所述方法还包括:
将各所述分片数据与所述分片数据对应的目标摘要组合成目标数据;
将所述目标数据进行广播,以分布式存储于多个服务器中。
优选地,所述方法还包括:
若存在服务器对要分配存储的所述目标数据的质疑,则提出质疑的服务器提交的质疑证据,并广播至其他服务器进行校验;
如果所述质疑证据被其他服务器校验通过,则允许提出质疑的服务器执行对所分配存储的所述目标数据进行拒绝操作;
如果所述质疑证据未被其他服务器校验通过,则要求提出质疑的服务器对新的所述目标数据进行写入的操作。
优选地,所述用私钥对最后一个所述目标摘要进行加密,所述方法包括:
若所述原始数据的数据类型为文本或图像,则用RSA公私密钥对的私钥,对最后一个所述目标摘要进行加密;
若所述原始数据的数据为声音或指纹类型,则用SM2公私密钥对的私钥,对最后一个所述目标摘要进行加密。
优选地,所述方法还包括:
扫描所述二维码,解码分离出防伪数据,以提取所述防伪数据中携带的原始数据与加密摘要;
用公钥对所述加密摘要进行解密,获得解密后的目标摘要;并对所述原始数据进行Hash变换,获得原始摘要;
将所述目标摘要与原始摘要进行比较,若二者一致,表示该二维码未被篡改,否则表示已被篡改。
优选地,所述方法还包括:。
服务器接收其它服务器的举报信息,并进行验证以确定可疑信息;
所述服务器将所述可疑信息发送至至少一个客户端以使得所述至少一个客户端向用户发出可疑信息提示。
优选地,所述用公钥对所述加密摘要进行解密,所述方法包括:
从所述防伪数据中解析出原始数据及所述原始数据相应的数据类型;
若所述原始数据的数据类型为文本或图像,则用RSA公私密钥对的公钥,对所述加密摘要进行解密;
若所述原始数据的数据为声音或指纹类型,则用SM2公私密钥对的公钥,对所述加密摘要进行解密。
第二方面,本发明提供了一种二维码防伪系统,所述系统包括:
分片合并模块,用于将原始数据切分为带编号的多个分片数据,并依次将当前分片数据的摘要与后一分片数据合并成中间数据;
变换加密模块,用于将所述中间数据进行Hash变换获得目标摘要,并用私钥对最后一个所述目标摘要进行加密,生成加密摘要;
编码生成模块,用于将所述原始数据与加密摘要组成防伪数据,并根据二维码编码方法对所述防伪数据进行编码,生成二维码。
第三方面,本发明提供了一种二维码防伪设备,所述设备包括:
通信总线,用于实现处理器与存储器间的连接通信;
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如下步骤:
将原始数据切分为带编号的多个分片数据,并依次将当前分片数据的摘要与后一分片数据合并成中间数据;
将所述中间数据进行Hash变换获得目标摘要,并用私钥对最后一个所述目标摘要进行加密,生成加密摘要;
将所述原始数据与加密摘要组成防伪数据,并根据二维码编码方法对所述防伪数据进行编码,生成二维码。
第四方面,本发明提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面的方法。
有益效果:本发明的二维码防伪方法该方法相应的系统、设备与存储介质,通过对原始数据的分片数据的一个摘要进行签名及验证,不需要对全部的原始数据进行签名及验证,节省了签名及验证时间与存储空间,二维码的存储容量得到提高,解决了随着二维码附带信息大量增加而导致的信息存储量的局限性,避免了二维码识别速度降低的问题;对原始数据的分片数据的全部摘要进行数字签名以作分布式存储、校验及引入举报功能,进一步增强二维码的安全性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,附图中的实施例不构成对本发明的任何限制,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明二维码防伪方法实施例一流程示意图。
图2是本发明二维码防伪方法实施例二流程示意图。
图3是本发明二维码防伪系统一实施例结构示意图。
图4是本发明二维码防伪设备一实施例结构示意图。
具体实施方式
下面结合附图与实施例对本发明技术方案作进一步详细的说明,这是本发明的较佳实施例。应当理解,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例;需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例技术方案的主要思想:将原始数据切分为带编号的多个分片数据,并依次将当前分片数据的摘要与后一分片数据合并成中间数据;将中间数据进行Hash变换获得目标摘要,并用私钥对最后一个目标摘要进行加密,生成加密摘要;将原始数据与加密摘要组成防伪数据,并根据二维码编码方法对防伪数据进行编码,生成二维码。
为了更好的理解上述的技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。
实施例一
本发明一实施例提供了一种二维码防伪方法,如图1所示,具体可以包括如下步骤:
步骤S101,将原始数据切分为带编号的多个分片数据,并依次将当前分片数据的摘要与后一分片数据合并成中间数据。
具体地,首先电子设备将原始数据按顺序地切分为多个分片数据,并给每一个分片数据编上编号;然后从第一个编号分片数据开始将当前分片数据进行Hash变换获得当前分片数据的摘要;最后将当前分片数据的摘要与后一分片数据合并成中间数据。电子设备对所有的分片数据重复上述操作,依次获得相应的所有中间数据。其中,Hash变换算法可采用Hash256。
步骤S102,将中间数据进行Hash变换获得目标摘要,并用私钥对最后一个目标摘要进行加密,生成加密摘要。
具体地,电子设备首先把获得的中间数据进行Hash变换获得目标摘要,比如:Hash变换算法可采用Hash256变换算法;然后分析原始数据的数据类型,根据分析出的数据类型对最后一个目标摘要采用相应的非对称加密,例如:如果原始数据的数据类型为文本或图像,则用RSA公私密钥对的私钥,对最后一个目标摘要进行加密;如果原始数据的数据为声音或指纹类型,则用SM2公私密钥对的私钥,对最后一个目标摘要进行加密。
步骤S103,将原始数据与加密摘要组成防伪数据,并根据二维码编码方法对防伪数据进行编码,生成二维码。
具体地,电子设备中可以保存有数据转换为二维码图像的对应模板,如二维码的版本信息、二维码的结构组成等,电子设备在获取了加密摘要后连同原始数据一起打包成防伪数据,并将防伪数据作为二维码的数据内容填充在二维码图像中的数据区域中,可以得到二维码。
在本实施例中,电子设备或终端设备可以为支付机具、二维码生成器等设备。二维码可以为收款码、订单码、付款码等。
实施例二
本发明一实施例提供了一种二维码防伪方法,如图2所示,具体可以包括如下步骤:
步骤S201,将原始数据切分为带编号的多个分片数据,并依次将当前分片数据的摘要与后一分片数据合并成中间数据。
具体地,首先电子设备将原始数据按顺序地切分为多个分片数据,并给每一个分片数据编上编号;然后从第一个编号分片数据开始将当前分片数据进行Hash变换获得当前分片数据的摘要;最后将当前分片数据的摘要与后一分片数据合并成中间数据。电子设备对所有的分片数据重复上述操作,依次获得相应的所有中间数据。其中,Hash变换算法可采用Hash256。
步骤S202,将中间数据进行Hash变换获得目标摘要,并用私钥对最后一个目标摘要进行加密,生成加密摘要。
具体地,电子设备首先把获得的中间数据进行Hash变换获得目标摘要,比如:Hash变换算法可采用Hash256变换算法;然后分析原始数据的数据类型,根据分析出的数据类型对最后一个目标摘要采用相应的非对称加密,例如:如果原始数据的数据类型为文本或图像,则用RSA公私密钥对的私钥,对最后一个目标摘要进行加密;如果原始数据的数据为声音或指纹类型,则用SM2公私密钥对的私钥,对最后一个目标摘要进行加密。
步骤S203,将原始数据与加密摘要组成防伪数据,并根据二维码编码方法对防伪数据进行编码,生成二维码。
具体地,电子设备中可以保存有数据转换为二维码图像的对应模板,如二维码的版本信息、二维码的结构组成等,电子设备在获取了加密摘要后连同原始数据一起打包成防伪数据,并将防伪数据作为二维码的数据内容填充在二维码图像中的数据区域中,可以得到二维码。
在本实施例中,电子设备或终端设备可以为支付机具、二维码生成器等设备。二维码可以为收款码、订单码、付款码等。
在本实施例中,电子设备将私钥对应的公钥进行广播,以便客户端根据公钥对加密摘要进行验证。其中,公钥可表示为key,私钥可表示为secret。二维码发布者需要保存key与secret这两个信息,私钥secret需要确保只有自己知道,不能公开;公钥key可以公开给任何人。
具体地,对于每一客户端,服务器均为其分配了一对配对的公钥与私钥,其中,私钥被申请二维码的客户端所拥有,相应的公钥则存储于服务器中,以便于供后续的二维码验证。因而,电子设备通过服务器将私钥对应的公钥进行存储并广播,以便客户端接收广播的公钥,并使用该公钥对待验证的信息进行验证。
在本实施例中,客户端可以包括智能手机、平板电脑等设备,用于对终端设备显示的二维码进行扫描,获得扫码结果。
步骤S204,扫描二维码,解码分离出防伪数据,以提取防伪数据中携带的原始数据与加密摘要。
本实施例中,客户端扫描的二维码可应用于支付、名片交流和签到等方面,是用特定的几何图形按照一定规律在平面(二维方向)上分布的图形。客户端扫描二维码之后,将通过解析二维码得到对应的二维码记录信息。
具体地,包括智能手机、平板电脑等客户端在内的设备在获取二维码,并扫描二维码时,将扫描终端设备上显示的二维码,二维码扫描软件读取到全部的有关二维码的内容信息,获得扫码结果,然后根据现有技术的二维码编码方法相应的解密方法解码分离出防伪数据,以提取防伪数据中携带的原始数据与加密摘要。
本实施例中,二维码记录信息可以是移动终端中扫描的二维码中包含的信息,也可以是个人电脑、笔记本等计算机中保存的二维码,例如,对于移动终端扫描得到的二维码而言,二维码为扫描页面中的图片,由移动终端扫描得到,二维码记录信息则是对二维码进行还原所得到的,其可为字符串的形式;对于计算机中保存的二维码而言,二维码为保存于计算机中的图片,通过计算机对二维码所进行的处理得到二维码中包含的二维码记录信息。
需要说明的是,每个客户端可以与客户的账户进行绑定,客户的账户数据可以是银行账户数据、支付宝账户数据等。当二维码为收款码时,客户的账户数据可以是客户的收款账号。
步骤S205,用公钥对加密摘要进行解密,获得解密后的目标摘要;并对原始数据进行Hash变换,获得原始摘要。
具体地,在客户端获取二维码,并扫描二维码时,二维码扫描软件读取到全部的有关二维码的内容信息,然后从防伪数据中解析出原始数据及原始数据相应的数据类型,根据获得的数据类型对加密摘要进行相应的非对称公钥解密,获得解密后的目标摘要相应的哈希值,标记为Hash_A。例如:若原始数据的数据类型为文本或图像,则客户端接收广播的RSA公私密钥对的公钥,对加密摘要进行解密,获得解密后的目标摘要相应的哈希值;若原始数据的数据为声音或指纹类型,则客户端接收广播的SM2公私密钥对的公钥,对加密摘要进行解密,获得解密后的目标摘要相应的哈希值。同时,对原始数据进行Hash变换(例如MD5),以获得原始摘要相应的哈希值,标记为Hash_B。其中,原始摘要是与步骤201、步骤202同样的方法获得的最后一个目标摘要相对应。
步骤S206,将所述目标摘要与原始摘要进行比较,若二者一致,表示该二维码未被篡改,否则表示已被篡改。
具体地,将目标摘要与原始摘要进行比较,进行一致性判断,即Hash_A和Hash_B是否一致,如果两者一致,表示该二维码未被篡改,是合法的,用户通过该二维码进行支付、签到等操作是安全的;否则表示已被篡改,并不是原有的二维码,因此将生成判定二维码被篡改的认证结果,以提示客户端用户。
在一个可选实施例中,电子设备还可将各分片数据与分片数据对应的目标摘要组合成目标数据;并将目标数据进行广播,以分布式存储于多个服务器中。其中,在数据存储过程中,出于安全起见,需要对存储数据进行鉴别:若存在服务器对要分配存储的目标数据的质疑,则提出质疑的服务器提交的质疑证据,并广播至其他服务器进行校验;如果质疑证据被其他服务器校验通过,则允许提出质疑的服务器执行对所分配存储的目标数据进行拒绝操作;如果质疑证据未被其他服务器校验通过,则要求提出质疑的服务器对新的目标数据进行写入的操作。
这样,客户端可将扫码得到的二维码对应的二维码记录信息之后,将二维码记录信息传递至服务器,以使服务器对二维码的安全性进行验证之后,客户端才能够安全使用该二维码实现支付、名片交流和签到等功能。服务器的管理方需要根据处理流程来验证其实际的情况,此处不再赘述。
进一步,即使经过服务器认证的发布服务器发布的二维码也可能是不安全的,因此服务器还需要引入用户举报功能,并且服务器需要更多的线上和线下措施来保证服务器认证的可靠性,发现问题需要及时更新数据库,把存储不安全二维码的服务器清理出服务器的注册数据库中。因而,服务器接收其它服务器的举报信息,并进行验证以确定可疑信息,并将可疑信息发送至至少一个客户端以使得至少一个客户端向用户发出可疑信息提示。
本实施例中,服务器在生成认证结果之后,将返回认证结果,阻止当前通过二维码所进行的支付、签到等操作,进而进一步地保证了用户安全。
实施例三
本发明一实施例提供了一种二维码防伪系统,如图3所示,具体可以包括如下模块:
分片合并模块,用于将原始数据切分为带编号的多个分片数据,并依次将当前分片数据的摘要与后一分片数据合并成中间数据;
变换加密模块,用于将中间数据进行Hash变换获得目标摘要,并用私钥对最后一个目标摘要进行加密,生成加密摘要;
编码生成模块,用于将原始数据与加密摘要组成防伪数据,并根据二维码编码方法对防伪数据进行编码,生成二维码。
实施例四
本发明一实施例提供了一种二维码防伪设备,如图4所示,具体可以包括如下模块:
通信总线,用于实现处理器与存储器间的连接通信;
存储器,用于存储计算机程序;存储器可能包含高速RAM存储器,也可能还包含非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器可选的可以包含至少一个存储装置。
处理器,用于执行所述计算机程序以实现如下步骤:
步骤S301,将原始数据切分为带编号的多个分片数据,并依次将当前分片数据的摘要与后一分片数据合并成中间数据。
具体地,首先电子设备将原始数据按顺序地切分为多个分片数据,并给每一个分片数据编上编号;然后从第一个编号分片数据开始将当前分片数据进行Hash变换获得当前分片数据的摘要;最后将当前分片数据的摘要与后一分片数据合并成中间数据。电子设备对所有的分片数据重复上述操作,依次获得相应的所有中间数据。其中,Hash变换算法可采用Hash256。
步骤S302,将中间数据进行Hash变换获得目标摘要,并用私钥对最后一个目标摘要进行加密,生成加密摘要。
具体地,电子设备首先把获得的中间数据进行Hash变换获得目标摘要,比如:Hash变换算法可采用Hash256变换算法;然后分析原始数据的数据类型,根据分析出的数据类型对最后一个目标摘要采用相应的非对称加密,例如:如果原始数据的数据类型为文本或图像,则用RSA公私密钥对的私钥,对最后一个目标摘要进行加密;如果原始数据的数据为声音或指纹类型,则用SM2公私密钥对的私钥,对最后一个目标摘要进行加密。
步骤S303,将原始数据与加密摘要组成防伪数据,并根据二维码编码方法对防伪数据进行编码,生成二维码。
具体地,电子设备中可以保存有数据转换为二维码图像的对应模板,如二维码的版本信息、二维码的结构组成等,电子设备在获取了加密摘要后连同原始数据一起打包成防伪数据,并将防伪数据作为二维码的数据内容填充在二维码图像中的数据区域中,可以得到二维码。
在本实施例中,电子设备或终端设备可以为支付机具、二维码生成器等设备。二维码可以为收款码、订单码、付款码等。
在本实施例中,电子设备将私钥对应的公钥进行广播,以便客户端根据公钥对加密摘要进行验证。其中,公钥可表示为key,私钥可表示为secret。二维码发布者需要保存key与secret这两个信息,私钥secret需要确保只有自己知道,不能公开;公钥key可以公开给任何人。
具体地,对于每一客户端,服务器均为其分配了一对配对的公钥与私钥,其中,私钥被申请二维码的客户端所拥有,相应的公钥则存储于服务器中,以便于供后续的二维码验证。因而,电子设备通过服务器将私钥对应的公钥进行存储并广播,以便客户端接收广播的公钥,并使用该公钥对待验证的信息进行验证。
在本实施例中,客户端可以包括智能手机、平板电脑等设备,用于对终端设备显示的二维码进行扫描,获得扫码结果。
步骤S304,扫描二维码,解码分离出防伪数据,以提取防伪数据中携带的原始数据与加密摘要。
本实施例中,客户端扫描的二维码可应用于支付、名片交流和签到等方面,是用特定的几何图形按照一定规律在平面(二维方向)上分布的图形。客户端扫描二维码之后,将通过解析二维码得到对应的二维码记录信息。
具体地,包括智能手机、平板电脑等客户端在内的设备在获取二维码,并扫描二维码时,将扫描终端设备上显示的二维码,二维码扫描软件读取到全部的有关二维码的内容信息,获得扫码结果,然后根据现有技术的二维码编码方法相应的解密方法解码分离出防伪数据,以提取防伪数据中携带的原始数据与加密摘要。
本实施例中,二维码记录信息可以是移动终端中扫描的二维码中包含的信息,也可以是个人电脑、笔记本等计算机中保存的二维码,例如,对于移动终端扫描得到的二维码而言,二维码为扫描页面中的图片,由移动终端扫描得到,二维码记录信息则是对二维码进行还原所得到的,其可为字符串的形式;对于计算机中保存的二维码而言,二维码为保存于计算机中的图片,通过计算机对二维码所进行的处理得到二维码中包含的二维码记录信息。
需要说明的是,每个客户端可以与客户的账户进行绑定,客户的账户数据可以是银行账户数据、支付宝账户数据等。当二维码为收款码时,客户的账户数据可以是客户的收款账号。
步骤S305,用公钥对加密摘要进行解密,获得解密后的目标摘要;并对原始数据进行Hash变换,获得原始摘要。
具体地,在客户端获取二维码,并扫描二维码时,二维码扫描软件读取到全部的有关二维码的内容信息,然后从防伪数据中解析出原始数据及原始数据相应的数据类型,根据获得的数据类型对加密摘要进行相应的非对称公钥解密,获得解密后的目标摘要相应的哈希值,标记为Hash_A。例如:若原始数据的数据类型为文本或图像,则客户端接收广播的RSA公私密钥对的公钥,对加密摘要进行解密,获得解密后的目标摘要相应的哈希值;若原始数据的数据为声音或指纹类型,则客户端接收广播的SM2公私密钥对的公钥,对加密摘要进行解密,获得解密后的目标摘要相应的哈希值。同时,对原始数据进行Hash变换(例如MD5),以获得原始摘要相应的哈希值,标记为Hash_B。其中,原始摘要是与步骤201、步骤202同样的方法获得的最后一个目标摘要相对应。
步骤S306,将所述目标摘要与原始摘要进行比较,若二者一致,表示该二维码未被篡改,否则表示已被篡改。
具体地,将目标摘要与原始摘要进行比较,进行一致性判断,即Hash_A和Hash_B是否一致,如果两者一致,表示该二维码未被篡改,是合法的,用户通过该二维码进行支付、签到等操作是安全的;否则表示已被篡改,并不是原有的二维码,因此将生成判定二维码被篡改的认证结果,以提示客户端用户。
在一个可选实施例中,电子设备还可将各分片数据与分片数据对应的目标摘要组合成目标数据;并将目标数据进行广播,以分布式存储于多个服务器中。其中,在数据存储过程中,出于安全起见,需要对存储数据进行鉴别:若存在服务器对要分配存储的目标数据的质疑,则提出质疑的服务器提交的质疑证据,并广播至其他服务器进行校验;如果质疑证据被其他服务器校验通过,则允许提出质疑的服务器执行对所分配存储的目标数据进行拒绝操作;如果质疑证据未被其他服务器校验通过,则要求提出质疑的服务器对新的目标数据进行写入的操作。
这样,客户端可将扫码得到的二维码对应的二维码记录信息之后,将二维码记录信息传递至服务器,以使服务器对二维码的安全性进行验证之后,客户端才能够安全使用该二维码实现支付、名片交流和签到等功能。服务器的管理方需要根据处理流程来验证其实际的情况,此处不再赘述。
进一步,即使经过服务器认证的发布服务器发布的二维码也可能是不安全的,因此服务器还需要引入用户举报功能,并且服务器需要更多的线上和线下措施来保证服务器认证的可靠性,发现问题需要及时更新数据库,把存储不安全二维码的服务器清理出服务器的注册数据库中。因而,服务器接收其它服务器的举报信息,并进行验证以确定可疑信息,并将可疑信息发送至至少一个客户端以使得至少一个客户端向用户发出可疑信息提示。
本本实施例中,服务器在生成认证结果之后,将返回认证结果,阻止当前通过二维码所进行的支付、签到等操作,进而进一步地保证了用户安全。
本实施例中的处理器可能是一种集成电路芯片,具有信号处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。上述处理器可以是微处理器或者上述处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
实施例五
本发明一实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述二维码防伪方法。
综上所述,本发明实施例提供的一种二维码防伪方法该方法相应的系统、设备与存储介质,通过对原始数据的分片数据的一个摘要进行签名及验证,不需要对全部的原始数据进行签名及验证,节省了签名及验证时间与存储空间,二维码的存储容量得到提高,解决了随着二维码附带信息大量增加而导致的信息存储量的局限性,避免了二维码识别速度降低的问题;对原始数据的分片数据的全部摘要进行数字签名以作分布式存储、校验及引入举报功能,进一步增强二维码的安全性。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本发明所必须的。
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行该计算机程序指令时,全部或部分地产生按照本申请实施例该的流程或功能。该计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质。半导体介质可以是固态硬盘。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明是参照本发明实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (8)
1.一种二维码防伪方法,其特征在于,所述方法包括:
将原始数据切分为带编号的多个分片数据,并依次将当前分片数据的摘要与后一分片数据合并成中间数据;
将所述中间数据进行Hash变换获得目标摘要,并用私钥对最后一个所述目标摘要进行加密,生成加密摘要;
将所述原始数据与加密摘要组成防伪数据,并根据二维码编码方法对所述防伪数据进行编码,生成二维码。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:将所述私钥对应的公钥进行广播,以便客户端根据所述公钥对所述加密摘要进行验证。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
将各所述分片数据与所述分片数据对应的目标摘要组合成目标数据;
将所述目标数据进行广播,以分布式存储于多个服务器中。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若存在服务器对要分配存储的所述目标数据的质疑,则提出质疑的服务器提交的质疑证据,并广播至其他服务器进行校验;
如果所述质疑证据被其他服务器校验通过,则允许提出质疑的服务器执行对所分配存储的所述目标数据进行拒绝操作;
如果所述质疑证据未被其他服务器校验通过,则要求提出质疑的服务器对新的所述目标数据进行写入的操作。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述用私钥对最后一个所述目标摘要进行加密,所述方法包括:
若所述原始数据的数据类型为文本或图像,则用RSA公私密钥对的私钥,对最后一个所述目标摘要进行加密;
若所述原始数据的数据为声音或指纹类型,则用SM2公私密钥对的私钥,对最后一个所述目标摘要进行加密。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
扫描所述二维码,解码分离出防伪数据,以提取所述防伪数据中携带的原始数据与加密摘要;
用公钥对所述加密摘要进行解密,获得解密后的目标摘要;并对所述原始数据进行Hash变换,获得原始摘要;
将所述目标摘要与原始摘要进行比较,若二者一致,表示该二维码未被篡改,否则表示已被篡改。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
服务器接收其它服务器的举报信息,并进行验证以确定可疑信息;
所述服务器将所述可疑信息发送至至少一个客户端以使得所述至少一个客户端向用户发出可疑信息提示。
8.根据权利要求6或7所述的方法,其特征在于,所述用公钥对所述加密摘要进行解密,所述方法包括:
从所述防伪数据中解析出原始数据及所述原始数据相应的数据类型;
若所述原始数据的数据类型为文本或图像,则用RSA公私密钥对的公钥,对所述加密摘要进行解密;
若所述原始数据的数据为声音或指纹类型,则用SM2公私密钥对的公钥,对所述加密摘要进行解密。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010483775.4A CN111667039A (zh) | 2020-06-01 | 2020-06-01 | 一种二维码防伪方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010483775.4A CN111667039A (zh) | 2020-06-01 | 2020-06-01 | 一种二维码防伪方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111667039A true CN111667039A (zh) | 2020-09-15 |
Family
ID=72385498
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010483775.4A Withdrawn CN111667039A (zh) | 2020-06-01 | 2020-06-01 | 一种二维码防伪方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111667039A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112686072A (zh) * | 2020-12-28 | 2021-04-20 | 重庆医药高等专科学校 | 一种人力资源设备装置控制方法 |
CN112862488A (zh) * | 2021-03-29 | 2021-05-28 | 中信银行股份有限公司 | 数据的签名方法、装置、电子设备及计算机可读存储介质 |
CN113420316A (zh) * | 2021-08-23 | 2021-09-21 | 鲸数科技(北京)有限公司 | 静态二维码的安全存储、安全验证方法、装置和电子设备 |
CN113793141A (zh) * | 2021-09-01 | 2021-12-14 | 深圳市互联在线云计算股份有限公司 | 基于硬件钱包的交易方法、装置、设备及可读存储介质 |
CN115809674A (zh) * | 2022-11-25 | 2023-03-17 | 广州市鸿亿防伪产品有限公司 | 一种积分物流同步防伪系统 |
-
2020
- 2020-06-01 CN CN202010483775.4A patent/CN111667039A/zh not_active Withdrawn
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112686072A (zh) * | 2020-12-28 | 2021-04-20 | 重庆医药高等专科学校 | 一种人力资源设备装置控制方法 |
CN112862488A (zh) * | 2021-03-29 | 2021-05-28 | 中信银行股份有限公司 | 数据的签名方法、装置、电子设备及计算机可读存储介质 |
CN113420316A (zh) * | 2021-08-23 | 2021-09-21 | 鲸数科技(北京)有限公司 | 静态二维码的安全存储、安全验证方法、装置和电子设备 |
CN113793141A (zh) * | 2021-09-01 | 2021-12-14 | 深圳市互联在线云计算股份有限公司 | 基于硬件钱包的交易方法、装置、设备及可读存储介质 |
CN115809674A (zh) * | 2022-11-25 | 2023-03-17 | 广州市鸿亿防伪产品有限公司 | 一种积分物流同步防伪系统 |
CN115809674B (zh) * | 2022-11-25 | 2024-07-16 | 广州市鸿亿防伪产品有限公司 | 一种积分物流同步防伪系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102560512B1 (ko) | 데이타 확인 | |
CN111667039A (zh) | 一种二维码防伪方法 | |
CN106330464B (zh) | 一种身份认证方法、设备及系统 | |
CN103198344B (zh) | 税控安全二维码编码、解码处理方法 | |
KR101226651B1 (ko) | 생체 인식 기술의 사용에 기초한 사용자 인증 방법 및 관련구조 | |
US9531544B2 (en) | Two-dimensional bar code for ID card | |
AU2012345478B2 (en) | A method of generation and transmission of secure tokens based on tokens generated by TRNG and split into shares and the system thereof | |
WO2014154109A1 (zh) | 带防伪二维码的电子票据的生成方法、校验方法及其系统 | |
CA2374196A1 (en) | Legitimacy protection of electronic document and a printed copy thereof | |
CN105825257A (zh) | 基于二维条码的信息隐藏与隐藏信息提取方法及系统 | |
CN104809490A (zh) | 一种基于多维码的证卡防伪系统及其认证方法 | |
Wang et al. | 2D barcodes for visual cryptography | |
KR20190038938A (ko) | 이종 통신 네트워크 환경에서 검증가능하게 인증가능한 엔터티로의 원 엔터티의 변환을 구현하기 위한 시스템, 방법 및 서버 컴퓨터 시스템 | |
CN111859431B (zh) | 电子文件签章方法、装置、电子设备及存储介质 | |
Fu et al. | A new two-level information protection scheme based on visual cryptography and QR code with multiple decryptions | |
Uludag | Secure biometric systems | |
Singh et al. | Images as graphical password: verification and analysis using non-regular low-density parity check coding | |
CN113486998A (zh) | 基于芯片印章的盖章文件防伪标记生成及验证方法 | |
Mark et al. | A secured online voting system by using blockchain as the medium | |
JP2005293490A (ja) | 生体認証システム | |
Zhang et al. | A High‐Quality Authenticatable Visual Secret Sharing Scheme Using SGX | |
CN110197245A (zh) | 一种双码制二维码及其跨平台交互方法 | |
Srinivas et al. | A Novel Approach For Generation of OTP'S Using Image's | |
Ambadiyil et al. | Performance analysis and security dependence of on paper digital signature using random and critical content | |
US8345993B1 (en) | Electronic coding system for security of identification |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20200915 |