一种二维码的防伪方法与流程

文档序号:18639006发布日期:2019-09-11 22:44阅读:544来源:国知局
一种二维码的防伪方法与流程

本发明涉及二维码领域,特别指一种二维码的防伪方法。



背景技术:

二维码又称二维条码,二维码是一种数据信息的图像编码和表现形式,是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息。因为二维码可以携带较多数据、较多类型的数据,近几年来成为移动设备上主流的一种编码方式。

然而,由于二维码以图像的形态展现,从基本原理上来说,既不能阻止攻击者通过复制的方式对二维码进行盗用,也不能防止掌握了二维码编码原理的攻击者自己生成和改造二维码,使得二维码在使用过程中存在安全隐患。

为了提高二维码使用的安全性,需要对二维码进行防伪,而防伪的关键在于提升二维码内数据的安全性。因此,如何提供一种二维码的防伪方法,实现提升二维码内数据的安全性,成为一个亟待解决的问题。



技术实现要素:

本发明要解决的技术问题,在于提供一种二维码的防伪方法,实现提升二维码内数据的安全性。

本发明是这样实现的:一种二维码的防伪方法,所述方法包括如下步骤:

步骤s10、发码方随机生成一第一公钥以及一第一私钥,并将第一公钥发送给解码方;

步骤s20、发码方利用第一私钥对需要防止篡改的第一数据进行数字签名并生成二维码a后发送给解码方;

步骤s30、解码方利用第一公钥对二维码a进行验签。

进一步地,所述步骤s20具体包括:

步骤s21、发码方将需要防止篡改的第一数据加上一时间戳以及一有效期后生成一待签名数据;

步骤s22、发码方对待签名数据进行哈希计算得到第一哈希值;

步骤s23、发码方利用第一私钥对第一哈希值进行数字签名得到签名数据,并将签名数据生成二维码a后发送给解码方。

进一步地,所述有效期可以依据实际需求进行调整。

进一步地,所述步骤s30具体包括:

步骤s31、解码方接收到二维码a后对二维码a的数据进行读取得到签名数据,利用第一公钥对签名数据进行验签,若验签成功,则进入步骤s32;若验签失败,则结束流程;

步骤s32、解码方得到待签名数据以及第一哈希值,解码方对待签名数据进行哈希计算得到第二哈希值,并对第一哈希值以及第二哈希值进行比较,若比较结果一致,则进入步骤s33;若比较结果不一致,则结束流程;

步骤s33、解码方提取待签名数据中的时间戳以及有效期,并计算当前的时间至时间戳的间隔是否超过有效期,若超过,则判定二维码a为无效码并结束流程;若未超过,则判定二维码a为有效码,且确定二维码a由发码方发出、未被篡改,实现二维码a的防伪。

进一步地,还包括一数据加密传输方法,包括如下步骤:

步骤s100、解码方随机生成一第二公钥以及一第二私钥,并将第二公钥发送给发码方;

步骤s200、发码方利用第二公钥对需要保密的第二数据进行加密并生成二维码b后发送给解码方;

步骤s300、解码方利用第二私钥对二维码b进行解密。

进一步地,所述步骤s300具体为:

解码方接收到二维码b后对二维码b的数据进行读取,解码方利用第二私钥对读取的数据进行解密得到第二数据,完成第二数据的保密传输。

本发明的优点在于:

1、通过第一私钥对待签名数据进行签名,并利用第一公钥对签名数据进行验签,可以有效的对数据发送者的身份进行验证。

2、通过设置时间戳以及有效期,即设置二维码的有效期,防止二维码被重放攻击以及滥用。

3、通过对待签名数据进行哈希计算得到哈希值,并比较发码方和解码方的计算结果,可以验证待签名数据是否被篡改;且通过哈希计算得到固定长度的哈希值可以对待签名数据进行压缩映射。

4、由于第一公钥以及第二公钥可以离线存储,即使在离线的状态下也可以通过第一公钥或者第二公钥对二维码进行核验,构成了一种有效的离线核验机制。

5、通过采用公钥私钥机制,由于公钥加密的数据只能通过私钥解密,私钥加密的数据只能通过公钥解密,且公钥与私钥完全不同,即使攻击者窃取了公钥也无法推算出私钥,即无法伪造出合法的二维码。

附图说明

下面参照附图结合实施例对本发明作进一步的说明。

图1是本发明一种二维码的防伪方法的流程图。

具体实施方式

请参照图1所示,本发明一种二维码的防伪方法的较佳实施例,包括如下步骤:

步骤s10、发码方随机生成一第一公钥以及一第一私钥,并将第一公钥发送给解码方;第一公钥加密的数据仅能由第一私钥进行解密,第一私钥加密的数据仅能由第一公钥进行解密。

步骤s20、发码方利用第一私钥对需要防止篡改的第一数据进行数字签名并生成二维码a后发送给解码方;

步骤s30、解码方利用第一公钥对二维码a进行验签。

由于第一公钥以及第二公钥可以离线存储,即使在离线的状态下也可以通过第一公钥或者第二公钥对二维码进行核验,构成了一种有效的离线核验机制。

所述步骤s20具体包括:

步骤s21、发码方将需要防止篡改的第一数据加上一时间戳以及一有效期后生成一待签名数据;通过设置时间戳以及有效期,即设置二维码的有效期,防止二维码被重放攻击以及滥用。

重放攻击(replayattacks)又称重播攻击、回放攻击,是指攻击者发送一个目的主机已接收过的包,来达到欺骗系统的目的,主要用于身份认证过程,破坏认证的正确性。重放攻击可以由发起者,也可以由拦截并重发该数据的敌方进行。攻击者利用网络监听或者其他方式盗取认证凭据,之后再把它重新发给认证服务器。重放攻击在任何网络通过程中都可能发生,是计算机世界黑客常用的攻击方式之一。

步骤s22、发码方对待签名数据进行哈希计算得到第一哈希值(hash值);

哈希值验证方法:对信息做哈希计算得到一个哈希值,这个过程是不可逆的,即无法通过哈希值得出原信息。把哈希值加密后做为一个签名和信息一起发给接收方。接收方在收到信息后对签名进行解密得到哈希值,并依据信息重新计算哈希值,并将接收到的哈希值和重新计算的哈希值进行对比,如果一致,就说明信息的内容没有被修改过;

步骤s23、发码方利用第一私钥对第一哈希值进行数字签名得到签名数据,并将签名数据生成二维码a后发送给解码方。通过第一私钥对待签名数据进行签名,并利用第一公钥对签名数据进行验签,可以有效的对数据发送者的身份进行验证。

所述有效期可以依据实际需求进行调整,例如设为1分钟。

所述步骤s30具体包括:

步骤s31、解码方接收到二维码a后对二维码a的数据进行读取得到签名数据,利用第一公钥对签名数据进行验签,若验签成功,则进入步骤s32;若验签失败,则结束流程;

步骤s32、解码方得到待签名数据以及第一哈希值,解码方对待签名数据进行哈希计算得到第二哈希值,并对第一哈希值以及第二哈希值进行比较,若比较结果一致,则进入步骤s33;若比较结果不一致,则结束流程;通过对待签名数据进行哈希计算得到哈希值,并比较发码方和解码方的计算结果,可以验证待签名数据是否被篡改;且通过哈希计算得到固定长度的哈希值可以对待签名数据进行压缩映射。

步骤s33、解码方提取待签名数据中的时间戳以及有效期,并计算当前的时间至时间戳的间隔是否超过有效期,若超过,则判定二维码a为无效码并结束流程;若未超过,则判定二维码a为有效码,且确定二维码a由发码方发出、未被篡改,实现二维码a的防伪。

还包括一数据加密传输方法,包括如下步骤:

步骤s100、解码方随机生成一第二公钥以及一第二私钥,并将第二公钥发送给发码方;

步骤s200、发码方利用第二公钥对需要保密的第二数据进行加密并生成二维码b后发送给解码方;

步骤s300、解码方利用第二私钥对二维码b进行解密。

所述步骤s300具体为:

解码方接收到二维码b后对二维码b的数据进行读取,解码方利用第二私钥对读取的数据进行解密得到第二数据,完成第二数据的保密传输。

通过采用公钥私钥机制,由于公钥加密的数据只能通过私钥解密,私钥加密的数据只能通过公钥解密,且公钥与私钥完全不同,即使攻击者窃取了公钥也无法推算出私钥,即无法伪造出合法的二维码。公钥用于加密、私钥用于签名。

综上所述,本发明的优点在于:

1、通过第一私钥对待签名数据进行签名,并利用第一公钥对签名数据进行验签,可以有效的对数据发送者的身份进行验证。

2、通过设置时间戳以及有效期,即设置二维码的有效期,防止二维码被重放攻击以及滥用。

3、通过对待签名数据进行哈希计算得到哈希值,并比较发码方和解码方的计算结果,可以验证待签名数据是否被篡改;且通过哈希计算得到固定长度的哈希值可以对待签名数据进行压缩映射。

4、由于第一公钥以及第二公钥可以离线存储,即使在离线的状态下也可以通过第一公钥或者第二公钥对二维码进行核验,构成了一种有效的离线核验机制。

5、通过采用公钥私钥机制,由于公钥加密的数据只能通过私钥解密,私钥加密的数据只能通过公钥解密,且公钥与私钥完全不同,即使攻击者窃取了公钥也无法推算出私钥,即无法伪造出合法的二维码。

虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1