CN104915701B - 一种自加密自校验的二维码编码解码方法 - Google Patents
一种自加密自校验的二维码编码解码方法 Download PDFInfo
- Publication number
- CN104915701B CN104915701B CN201510311530.2A CN201510311530A CN104915701B CN 104915701 B CN104915701 B CN 104915701B CN 201510311530 A CN201510311530 A CN 201510311530A CN 104915701 B CN104915701 B CN 104915701B
- Authority
- CN
- China
- Prior art keywords
- key
- salt
- character string
- lot number
- parameter
- 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.)
- Active
Links
Landscapes
- Storage Device Security (AREA)
Abstract
本发明公开了一种自加密自校验的二维码编码及解码方法,从当前使用的密钥批号对应的数据记录表中,随机选择一条记录,该记录中有salt和密钥;把salt与产品流水号连接成一个字符串,用密钥通过对称密钥算法进行加密,得到密文;将密钥批号、salt和密文连接成一个字符串,作为参数;将给定的地址和参数结合起来,得到一个Url,作为所需的二维码信息编码。该发明可以实现对二维码信息进行自加密自校验编码解码,使二维码信息难以伪造,同时也可以直接根据二维码信息判断是否伪造的二维码。
Description
技术领域
本发明涉及信息安全及自动识别领域,具体涉及一种自加密自校验的二维码编码解码方法。
背景技术
由于二维码可表示丰富的信息,且简便易用,特别是随着移动智能终端的普及,二维码扫码已经成了当前应用广泛的方式。一些企业在产品上印制每件产品唯一的二维码,用来实现产品真伪识别、产品追踪、营销活动等目的。二维码技术是对由字符串表示的二维码信息进行图案编码而生成可供扫描的二维码,一般采用QR码等公开技术,本身并不具有加密特性,可被任意扫码软件轻易识读,从而使得产品上的二维码易被伪造。
一般用于标识唯一产品的二维码信息为一个带参数的URL,其中最主要的参数是根据一个内部流水号生成的,伪造者易于通过识读真品二维码,获取流水号模型,从而生成新的流水号,然后使用QR编码工具生成新的二维码。这种伪造的二维码会对企业的二维码应用的开展带来严重影响。还有一种常见的二维码信息编码方式,是对流水号使用对称密钥算法进行加密,然后编入二维码信息。这种方式可以使二维码信息不易被识读出流水号的生成规则,然而也有缺点:一是字典式攻击使对称密钥算法可能在有限的时间内被破解;二是即使攻击者未能破解出密钥,也可以使用假的二维码信息进行攻击,由于这种二维码没有自校验功能,系统不能即刻识别出其为伪造码,仍会使用被伪造的信息向数据库查询,导致系统易遭受拒绝服务攻击,影响系统的正常服务。
发明内容
为了解决产品上印制的二维码易被伪造的问题,提出一种能够自加密解密的二维码编码解码方法,可以实现对二维码信息进行自加密自校验编码,使二维码信息难以伪造,同时也可以直接根据二维码信息判断是否伪造的二维码。
本发明公开一种自加密自校验的二维码编码方法,包括以下步骤:
S1,从当前使用的密钥批号对应的数据记录表中,随机选择一条记录,该记录中有salt和密钥;
S2,把salt与产品流水号连接成一个字符串,用密钥通过对称密钥算法进行加密,得到密文;
S3,将密钥批号、salt和密文连接成一个字符串,作为参数;
S4,将给定的地址和参数结合起来,得到一个Url,作为所需的二维码信息编码。
所述是密钥通过以下步骤生成的,
S11,流水递增、查表、规则递增等方式产生指定长度的新的密钥批号;
S12,随机产生一个指定长度的字符串作为salt;
S13,根据选定的对称密钥算法,随机产生一个密钥;
S14,将密钥批号、salt和密钥存入数据记录表;
S15,密钥计数加1;
S16,判断密钥计数是否已达到指定数量,未到达返回步骤S12继续,否则结束本批密钥的生成过程。
该二维码编码的结构是:通过将随机salt与产品流水号结合,使用随机密钥加密,将密钥批号、salt和加密后的密文连接在一起的字符串作为二维码信息的参数,同时后台存储密钥批号、salt与密钥的对应关系,每个密钥批号对应于一批salt和密钥,每个salt唯一对应一个密钥。
本发明还公开一种自加密自校验的二维码解码方法,包括以下步骤:
S21,对需解码的二维码信息编码0,解析Url得到参数;
S22,将参数中的字符串,按照指定长度分割,得到密钥批号、salt和密文;
S23,查询密钥批号对应的数据记录表,找出其中salt对应的密钥;
S24,使用密钥对密文进行解密,得到解密后的字符串;
S25,对解密后的字符串按指定长度进行分割,得到解码后的salt和解码后的产品流水号;
S26,检查步骤S25解码后的salt是否等于步骤2中分割出的salt,若相等则该编码为真,输出步骤S25解码后的产品流水号;否则判定该码是伪造码,输出判定结果。
该二维码由于在编码中使用了随机salt和随机密钥进行加密,使得破解的难度大大增加,以现有的计算机的计算能力难以在可以接受的时间内进行破解;由于密钥批号的使用,可以在一段时间后全部更换密钥,则即使之前的密钥遭到了破解,也可以保障其他密钥的安全,进一步保障了编码的安全可靠性,同时也可以提供支持分库分表的主键,来实现系统对高并发服务的支持。该编码方法可以在解码过程中直接实现编码真伪校验,剔除伪造的二维码,保护系统服务的正常运转。
附图说明
图1为本发明一种自加密自校验的二维码编码结构图
图2为本发明一种自加密自校验的二维码密钥生成流程图
图3为本发明一种自加密自校验的二维码编码和自加密的流程图
图4为本发明一种自加密自校验的二维码解码和自加密的流程图
具体实施方式
参见图1,为本发明的二维码的编码结构0包括地址1和参数2,参数2包括密钥批号24,随机salt22和密文23,密文23由密钥231、salt22和产品流水号231组成,通过将随机salt与产品流水号结合,使用随机密钥加密,将密钥批号、salt和加密后的密文连接在一起的字符串作为二维码信息的参数,同时后台存储密钥批号、salt与密钥的对应关系,每个密钥批号对应于一批salt和密钥,每个salt唯一对应一个密钥。
该密钥通过以下步骤生成,参见图2
步骤S11,流水递增、查表、规则递增等方式产生指定长度的新的密钥批号;如长度为4的1001作为密钥批号,指定生成100个密钥,
步骤S12,随机产生一个指定长度的字符串作为salt;如产生一个长度为12的字符串WXXPFD79G2FP作为salt1,
步骤S13,根据选定的对称密钥算法,随机产生一个密钥;随机产生一个密钥1如JTV8YKCYCDPD2YXVTGQ6RF747,
步骤S14,将密钥批号、salt和密钥存入数据记录表;每个salt唯一对应一个密钥,
步骤S15,密钥计数加1;
步骤S16,判断密钥计数是否已达到指定数量100,未到达返回步骤S12继续,否则结束本批密钥的生成过程。
该自加密自校验的二维码编码方法包括以下步骤,参见图3:
步骤S1,从当前使用的密钥批号对应的数据记录表中,随机选择一条记录,该记录中有salt和密钥;如当前使用的密钥批号为1001,随机选择一条记录,该记录为salt:WXXPFD79G2FP,密钥JTV8YKCYCDPD2YXVTGQ6RF747,
步骤S2,把salt与产品流水号连接成一个字符串,用密钥通过对称密钥算法进行加密,得到密文;该产品流水号可以根据生产商、生产日期、产品名称、产品类别等信息为规则来生成,如XX厂商X年X月X日生产的XX牌的XX,其流水号为0015 2500 6381 0050,
步骤S3,将密钥批号、salt和密文连接成一个字符串,作为参数;如该字符串可以为1001WXXPFD79G2FP JTV8YKCYCDPD2YXVTGQ6RF747,将其作为参数,
步骤S4,将给定的地址和参数结合起来,得到一个Url,作为所需的二维码信息编码。该自加密自校验的二维码解码方法包括以下步骤,参见图4:
步骤S21,对需解码的二维码信息编码0,解析Url得到参数,1001WXXPFD79G2FPJTV8YKCYCDPD2YXVTGQ6RF747
步骤S22,将参数中的字符串,按照指定长度分割,得到密钥批号、salt和密文;
步骤S23,查询密钥批号对应的数据记录表,找出其中salt对应的密钥;
步骤S24,使用密钥对密文进行解密,得到解密后的字符串,1001WXXPFD79G2FPJTV8YKCYCDPD2YXVTGQ6RF747;
步骤S25,对解密后的字符串按指定长度进行分割,得到解码后的salt和解码后的产品流水号;
S26,检查步骤S25解码后的salt是否等于步骤2中分割出的salt,若相等则该编码为真,输出步骤S25解码后的产品流水号;否则判定该码是伪造码,输出判定结果。
该二维码由于在编码中使用了随机salt和随机密钥进行加密,使得破解的难度大大增加,以现有的计算机的计算能力难以在可以接受的时间内进行破解;由于密钥批号的使用,可以在一段时间后全部更换密钥,则即使之前的密钥遭到了破解,也可以保障其他密钥的安全,进一步保障了编码的安全可靠性,同时也可以提供支持分库分表的主键,来实现系统对高并发服务的支持。该编码方法可以在解码过程中直接实现编码真伪校验,剔除伪造的二维码,保护系统服务的正常运转。
显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。
Claims (1)
1.一种自加密自校验的二维码编码方法,其特征在于,包括以下步骤:
S1,从当前使用的密钥批号对应的数据记录表中,随机选择一条记录,该记录中有salt和密钥;
S2,把salt与产品流水号连接成一个字符串,用密钥通过对称密钥算法进行加密,得到密文;
S3,将密钥批号、salt和密文连接成一个字符串,作为参数;
S4,将给定的地址和参数结合起来,得到一个Url,作为所需的二维码信息编码;
所述密钥通过以下步骤生成,
S11,流水递增、查表、规则递增等方式产生指定长度的新的密钥批号;
S12,随机产生一个指定长度的字符串作为salt;
S13,根据选定的对称密钥算法,随机产生一个密钥;
S14,将密钥批号、salt和密钥存入数据记录表;
S15,密钥计数加1;
S16,判断密钥计数是否已达到指定数量,未到达返回步骤S12继续,否则结束本批密钥的生成过程;
所述自加密自校验的二维码解码方法,其特征在于,包括以下步骤:
S21,对需解码的二维码信息编码0,解析Url得到参数;
S22,将参数中的字符串,按照指定长度分割,得到密钥批号、salt和密文;
S23,查询密钥批号对应的数据记录表,找出其中salt对应的密钥;
S24,使用密钥对密文进行解密,得到解密后的字符串;
S25,对解密后的字符串按指定长度进行分割,得到解码后的salt和解码后的产品流水号;
S26,检查步骤S25解码后的salt是否等于步骤2中分割出的salt,若相等则该编码为真,输出步骤S25解码后的产品流水号;否则判定该编码是伪造码,输出判定结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510311530.2A CN104915701B (zh) | 2015-06-09 | 2015-06-09 | 一种自加密自校验的二维码编码解码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510311530.2A CN104915701B (zh) | 2015-06-09 | 2015-06-09 | 一种自加密自校验的二维码编码解码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104915701A CN104915701A (zh) | 2015-09-16 |
CN104915701B true CN104915701B (zh) | 2018-06-08 |
Family
ID=54084750
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510311530.2A Active CN104915701B (zh) | 2015-06-09 | 2015-06-09 | 一种自加密自校验的二维码编码解码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104915701B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106650870A (zh) * | 2016-11-01 | 2017-05-10 | 南京理工大学 | 用于接入的安全二维码生成方法 |
CN109816401A (zh) * | 2019-01-17 | 2019-05-28 | 柳州康云互联科技有限公司 | 一种基于二维码的产品溯源及防伪系统及方法 |
CN110706007B (zh) * | 2019-10-11 | 2023-04-07 | 工业和信息化部装备工业发展中心 | 一种数据防伪方法及产品凭证核验方法 |
CN112488270A (zh) * | 2020-12-15 | 2021-03-12 | 青岛海尔科技有限公司 | 一种二维码生成方法及装置 |
CN112712145A (zh) * | 2020-12-23 | 2021-04-27 | 江苏省广电网络科技发展有限公司 | 一种可溯源验证的二维码加密防伪方法 |
CN113362522B (zh) * | 2021-07-02 | 2023-03-14 | 北京高阳金信信息技术有限公司 | 纸质支票线上存兑的处理方法 |
CN114500093B (zh) * | 2022-02-24 | 2024-06-11 | 中国工商银行股份有限公司 | 报文信息的安全交互方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103401679A (zh) * | 2013-07-18 | 2013-11-20 | 湖北楚天传媒网络科技有限责任公司 | 一种二维码的加密与解码方法 |
CN104125064A (zh) * | 2013-04-28 | 2014-10-29 | 阿里巴巴集团控股有限公司 | 一种动态密码认证方法、客户端及认证系统 |
CN104598801A (zh) * | 2015-01-23 | 2015-05-06 | 上海众人科技有限公司 | 一种基于算法重构的动态二维码生成方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007114869A (ja) * | 2005-10-18 | 2007-05-10 | Fuji Xerox Co Ltd | 読取装置、情報処理システム、および媒体偽造防止方法 |
-
2015
- 2015-06-09 CN CN201510311530.2A patent/CN104915701B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104125064A (zh) * | 2013-04-28 | 2014-10-29 | 阿里巴巴集团控股有限公司 | 一种动态密码认证方法、客户端及认证系统 |
CN103401679A (zh) * | 2013-07-18 | 2013-11-20 | 湖北楚天传媒网络科技有限责任公司 | 一种二维码的加密与解码方法 |
CN104598801A (zh) * | 2015-01-23 | 2015-05-06 | 上海众人科技有限公司 | 一种基于算法重构的动态二维码生成方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104915701A (zh) | 2015-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104915701B (zh) | 一种自加密自校验的二维码编码解码方法 | |
CN108053001B (zh) | 电子仓单的信息安全认证方法和系统 | |
US20190370620A1 (en) | Method and apparatus for generating and reading composite two-dimensional code | |
KR101240873B1 (ko) | 무선 주파수 식별 시스템 및 방법 | |
CN103093365B (zh) | 验证产品真伪的方法和系统 | |
KR100969730B1 (ko) | 무선 주파수 식별 시스템 및 방법과, 복수의 무선 주파수식별 태그를 포함한 멀티코어 태그 | |
CN202019354U (zh) | 一种基于nfc手机的物品身份验证及防伪系统 | |
CN102779284B (zh) | 一种集商品防伪、物流管控等综合功能于一体的rfid标签 | |
US20080024268A1 (en) | Component authentication for computer systems | |
CN101968834A (zh) | 电子产品的防抄板加密方法和装置 | |
CN102855577B (zh) | 基于云计算的多重商品防伪验证方法 | |
US20200074130A1 (en) | Item identification | |
CN101201886A (zh) | 一种识别商品的三阖码 | |
CN110825639B (zh) | 一种防篡改时间的软件License验证方法 | |
CN105719144A (zh) | 基于二维码的食品安全追溯方法和系统 | |
CN105184590A (zh) | 应用于钢材的激光在线高效蚀刻及产品防伪溯源系统 | |
CN111461745A (zh) | 一种饮料瓶返现资格验证方法及系统和饮料瓶回收机 | |
EP3622425A1 (en) | A method and a system for creating and authenticating a binary graphic code | |
CN104766212A (zh) | 一种身份标识的装置和方法 | |
CN105577376A (zh) | 二维码的编解码和认证方法和装置 | |
Lim et al. | A new hash-based RFID mutual authentication protocol providing enhanced user privacy protection | |
CN1996335A (zh) | 终端机中嵌入式软件的远程授权方法 | |
CN116091087A (zh) | 一种基于区块链和nfc的量子加密防伪溯源方法及终端 | |
CN107483427A (zh) | 一种基于Ntag21X系列芯片的自增强型防伪技术 | |
CN112101962A (zh) | 一种数据安全防伪控制方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |