CN115204340A - 用于生成二维码的方法、装置、电子设备及存储介质 - Google Patents
用于生成二维码的方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115204340A CN115204340A CN202211117257.6A CN202211117257A CN115204340A CN 115204340 A CN115204340 A CN 115204340A CN 202211117257 A CN202211117257 A CN 202211117257A CN 115204340 A CN115204340 A CN 115204340A
- Authority
- CN
- China
- Prior art keywords
- user
- dimensional code
- user data
- character string
- encrypted
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000004422 calculation algorithm Methods 0.000 claims description 35
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 238000012795 verification Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 11
- 230000005540 biological transmission Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 101100381510 Mus musculus Bcl10 gene Proteins 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- BASFCYQUMIYNBI-UHFFFAOYSA-N platinum Chemical compound [Pt] BASFCYQUMIYNBI-UHFFFAOYSA-N 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
Abstract
本申请涉及数据安全技术领域,公开一种用于生成二维码的方法,包括:在接收到发送用户数据的请求的情况下,将用户数据转化成用户数据字符串;在预设的第一数据库中获取第一用户终端对应的第一私钥和用户证书;利用第一私钥对用户数据字符串进行签名,获得第一签名结果;根据用户数据字符串、第一签名结果和用户证书获取待加密数据;获取加密密钥,加密密钥为随机获取的自然数;利用加密密钥对待加密数据进行加密,获得加密密文;根据加密密钥和加密密文生成二维码。这样能够减少数据泄露的几率。本申请还公开一种用于生成二维码的装置、电子设备及存储介质。
Description
技术领域
本申请涉及数据安全技术领域,例如涉及一种用于生成二维码的方法、装置、电子设备及存储介质。
背景技术
随着大数据时代的到来,人们习惯于通过互联网分享数据。但是,互联网的安全问题也日益凸显。由于建立的数据传输通道有可能受到黑客攻击,从而导致数据信息泄露。现有用于防止数据信息泄露的方法是:对数据信息进行加密,获得加密数据,然后基于加密数据生成二维码进行传输,这样接收方必须知晓密码才能通过二维码获得数据信息。例如,公开号为CN104717056A的中国专利文件公开了一种二维码加密方法,包括:确定待加密的原始数据的安全级别;依据安全级别,确定原始数据待使用的密钥及密钥标识信息;使用密钥对原始数据进行加密,并将密钥标识信息与加密后的原始数据进行编码而形成原始数据的二维码图形。公开号为CN106301777A的中国专利文件公开了一种二维码加密传输方法,包括:S1:数据输入客户端的加密模块将待传输数据的进行加密,形成加密字符串、加密密钥和密文后,传输给二维码生成模块;S2:该二维码生成模块接收加密字符串、加密密钥和密文后,生成二维码,并通过二维码显示模块显示;S3:数据接收客户端的扫描模块扫描该二维码并解析为加密字符串后,传输给解密输入模块;S4:解密输入模块对该加密字符串进行解密后,将解密后的二维码数据写入接收客户端的数据库。
然而在实现本公开实施例的过程中,发现相关技术中至少存在如下问题:由于现有技术中为数据信息进行加密的密钥通常是固定的,这样密钥一旦被恶意窃取,窃取方就能够从二维码中获得数据信息。
发明内容
为了对披露的实施例的一些方面有基本的理解,下面给出了简单的概括。所述概括不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围,而是作为后面的详细说明的序言。
本公开实施例提供了一种用于生成二维码的方法、装置、电子设备及存储介质,以能够减少数据泄露的几率。
在一些实施例中,所述用于生成二维码的方法应用于第一用户终端,所述方法包括:在接收到发送用户数据的请求的情况下,将所述用户数据转化成用户数据字符串;在预设的第一数据库中获取第一用户终端对应的第一私钥和用户证书;利用所述第一私钥对所述用户数据字符串进行签名,获得第一签名结果;根据所述用户数据字符串、所述第一签名结果和所述用户证书获取待加密数据;获取加密密钥,所述加密密钥为随机获取的自然数;利用所述加密密钥对所述待加密数据进行加密,获得加密密文;根据所述加密密钥和所述加密密文生成二维码。
在一些实施例中,所述用于生成二维码的装置应用于第一用户终端,所述装置包括:转化模块,被配置为在接收到发送用户数据的请求的情况下,将所述用户数据转化成用户数据字符串;第一获取模块,被配置为在预设的第一数据库中获取第一用户终端对应的第一私钥和用户证书;签名模块,被配置为利用所述第一私钥对所述用户数据字符串进行签名,获得第一签名结果;第二获取模块,被配置为根据所述用户数据字符串、所述第一签名结果和所述用户证书获取待加密数据;随机数生成模块,被配置为获取加密密钥,所述加密密钥为随机获取的自然数;加密模块,被配置为利用所述加密密钥对所述待加密数据进行加密,获得加密密文;二维码生成模块,被配置为根据所述加密密钥和所述加密密文生成二维码。
在一些实施例中,所述电子设备,包括处理器和存储有程序指令的存储器,所述处理器被配置为在运行所述程序指令时,执行上述的用于生成二维码的方法。
在一些实施例中,所述存储介质,存储有程序指令,所述程序指令在运行时,执行上述的用于生成二维码的方法。
本公开实施例提供的用于生成二维码的方法、装置、电子设备及存储介质,可以实现以下技术效果:通过在接收到发送用户数据的请求的情况下,将用户数据转化成用户数据字符串,并在预设的第一数据库中获取其对应的第一私钥和用户证书。然后利用第一私钥对用户数据字符串进行签名,获得第一签名结果,并根据用户数据字符串、第一签名结果和用户证书获取待加密数据。然后获取加密密钥,并利用加密密钥对待加密数据进行加密,获得加密密文。最后根据加密密钥和加密密文生成二维码。由于第一私钥与第一用户终端对应,这样使得生成的二维码能够与第一用户终端对应。同时,通过获取随机数来对待加密数据加密。这样每个二维码对应的加密密钥是不同的。这样即便加密密钥被窃取,窃取者也不一定能够利用被窃取的加密密钥从二维码中获取用户数据,从而减少了因加密密钥泄露而导致用户数据泄露的几率。
以上的总体描述和下文中的描述仅是示例性和解释性的,不用于限制本申请。
附图说明
一个或多个实施例通过与之对应的附图进行示例性说明,这些示例性说明和附图并不构成对实施例的限定,附图中具有相同参考数字标号的元件示为类似的元件,附图不构成比例限制,并且其中:
图1是本公开实施例提供的第一个用于生成二维码的方法的示意图;
图2是本公开实施例提供的第二个用于生成二维码的方法的示意图;
图3是本公开实施例提供的第三个用于生成二维码的方法的示意图;
图4是本公开实施例提供的一个用于生成二维码的方法的时序图;
图5是本公开实施例提供的一个用于生成二维码的装置的示意图;
图6是本公开实施例提供的电子设备的结构示意图。
具体实施方式
为了能够更加详尽地了解本公开实施例的特点与技术内容,下面结合附图对本公开实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本公开实施例。在以下的技术描述中,为方便解释起见,通过多个细节以提供对所披露实施例的充分理解。然而,在没有这些细节的情况下,一个或多个实施例仍然可以实施。在其它情况下,为简化附图,熟知的结构和装置可以简化展示。
本公开实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开实施例的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。
除非另有说明,术语“多个”表示两个或两个以上。
本公开实施例中,字符“/”表示前后对象是一种“或”的关系。例如,A/B表示:A或B。
术语“和/或”是一种描述对象的关联关系,表示可以存在三种关系。例如,A和/或B,表示:A或B,或,A和B这三种关系。
术语“对应”可以指的是一种关联关系或绑定关系,A与B相对应指的是A与B之间是一种关联关系或绑定关系。
结合图1所示,本公开实施例提供一种用于生成二维码的方法,应用于第一用户终端,该方法包括:
步骤S101,第一用户终端在接收到发送用户数据的请求的情况下,将用户数据转化成用户数据字符串。
步骤S102,第一用户终端在预设的第一数据库中获取其对应的第一私钥和用户证书。
步骤S103,第一用户终端利用第一私钥对用户数据字符串进行签名,获得第一签名结果。
步骤S104,第一用户终端根据用户数据字符串、第一签名结果和用户证书获取待加密数据。
步骤S105,第一用户终端获取加密密钥,加密密钥为随机获取的自然数。
步骤S106,第一用户终端利用加密密钥对待加密数据进行加密,获得加密密文。
步骤S107,第一用户终端根据加密密钥和加密密文生成二维码。
采用本公开实施例提供的用于生成二维码的方法,通过在接收到发送用户数据的请求的情况下,将用户数据转化成用户数据字符串,并在预设的第一数据库中获取其对应的第一私钥和用户证书。然后利用第一私钥对用户数据字符串进行签名,获得第一签名结果,并根据用户数据字符串、第一签名结果和用户证书获取待加密数据。然后获取加密密钥,并利用加密密钥对待加密数据进行加密,获得加密密文。最后根据加密密钥和加密密文生成二维码。由于第一私钥与第一用户终端对应,这样使得生成的二维码能够与第一用户终端对应。同时,通过获取随机数来对待加密数据加密。这样每个二维码对应的加密密钥是不同的。因此即便加密密钥被窃取,窃取者也不一定能够利用被窃取的加密密钥从二维码中获取用户数据,从而减少了因加密密钥泄露而导致用户数据泄露的几率。
可选地,用于生成二维码的方法,还包括:生成第一用户终端对应的第一公钥和第一私钥,并将第一私钥存储在第一数据库中。其中,第一私钥只有第一用户终端能够获取。进一步地,第一数据库中存储有第一用户终端的身份编码和第一私钥的对应关系。
可选地,用于生成二维码的方法,还包括:生成CA(certification authorit,证书颂发机构)对应的第二私钥和第二公钥,并将第二公钥和第二私钥存储在预设的第二数据库中。
可选地,通过以下方式获取第一用户终端对应的用户证书,根据第二预设算法利用第二私钥、第一公钥和第一用户终端对应的用户编码进行计算,获得第一验签结果,将第一公钥、用户编码和第一验签结果按照第三预设排列顺序排列,获得第一用户终端对应的用户证书。在一些实施例中,第二预设算法为非对称加密算法。例如:SM2算法、SM9算法和ECC算法。
在一些实施例中,第一用户终端对应的用户编码为UIDA。第一用户终端对应的公私钥对为{P,d},其中P为第一公钥,d为第一私钥。CA对应的公私钥对为{Q,T},其中Q为第二公钥,T为第二私钥。根据SM2算法利用第二私钥T,第一公钥P和用户编码UIDA进行计算,获得第一验签结果(s,t)。其中,s为第一验签结果包括的第一参数,t为第一验签结果包括的第二参数。将第一公钥P、用户编码UIDA和第一验签结果(s,t)按照第三预设排列顺序排列,获得第一用户终端对应的用户证书ODC={ P||UIDA||(s,t)}。
进一步地,利用第一私钥对用户数据字符串进行签名,获得第一签名结果,包括:根据第一预设算法利用第一私钥和用户数据字符串进行计算,获得第一签名结果。在一些实施例中,第一预设算法为非对称加密算法。例如:SM2算法、SM9算法和ECC算法。
在一些实施例中,根据SM2算法利用第一私钥“d”和用户数据字符串“AppDataRaw”进行计算,获得第一签名结果“(r1,r2)”。其中,r1为第一签名结果包括的第一参数,r2为第一签名结果包括的第二参数。
可选地,根据用户数据字符串、第一签名结果和用户证书获取待加密数据,包括:将用户数据字符串、第一签名结果和用户证书按照第一预设排列顺序进行排列,获得待加密数据。
在一些实施例中,将用户数据字符串“AppDataRaw”、第一签名结果“(r1,r2)”和用户证书“ODC={ P||UIDA||(s,t)}”按照第一预设排列顺序进行排列,获得待加密数据Plain= {AppDataRaw,(r1,r2),ODC}。
进一步地,利用加密密钥对待加密数据进行加密,获得加密密文,包括:根据第三预设算法利用加密密钥和待加密数据进行计算,获得加密密文。在一些实施例,第三预设算法包括非对称加密算法和对称加密算法。非对称加密算法例如为SM2算法、SM9算法、ECC算法,对称加密算法例如为SM4算法和AES算法。
可选地,根据加密密钥和加密密文生成二维码,包括:将加密密钥和加密密文按照第二预设排列顺序进行排列,获得重组字符串;将重组字符串转换为黑白阵列信息,获得二维码。
在一些实施例中,加密密文Ciper={C[7],C[6],C[5],C[4],C[3],C[2],C[1],C[0]},加密密钥DecKey={D[7],D[6],D[5],D[4],D[3],D[2],D[1],D[0]},将加密密钥DecKey和加密密文Ciper按照第二预设排列顺序进行排列,获得重组字符串DataToEncode={E[15],E[14],E[13],E[12],E[11],E[10],E[9],E[8],E[7],E[6],E[5],E[4],E[3],E[2],E[1],E[0]}。其中,E[15]=D[2],E[14]=D[5],E[13]=C[2],E[12]=D[1],E[11]=C[7],E[10]=C[0],E[9]=D[0],E[8]=D[3],E[7]=C[5],E[6]=D[4],E[5]=D[7],E[4]=C[4],E[3]=D[6],E[2]=C[1],E[1]=C[6],E[0]=C[3]。
可选地,根据第一密钥和加密密文生成二维码之后,还包括:将二维码发送给第二用户终端,触发第二用户终端对二维码进行解密,获得用户数据。
结合图2所示,本公开实施例提供一种用于生成二维码的方法,应用于第一用户终端,该方法包括:
步骤S201,第一用户终端在接收到发送用户数据的请求的情况下,将用户数据转化成用户数据字符串。
步骤S202,第一用户终端在预设的第一数据库中获取其对应的第一私钥和用户证书。
步骤S203,第一用户终端利用第一私钥对用户数据字符串进行签名,获得第一签名结果。
步骤S204,第一用户终端根据用户数据字符串、第一签名结果和用户证书获取待加密数据。
步骤S205,第一用户终端获取加密密钥,加密密钥为随机获取的自然数。
步骤S206,第一用户终端利用加密密钥对待加密数据进行加密,获得加密密文。
步骤S207,第一用户终端根据加密密钥和加密密文生成二维码。
步骤S208,第一用户终端将二维码发送给第二用户终端,触发第二用户终端对二维码进行解密,获得用户数据。
采用本公开实施例提供的用于生成二维码的方法,通过在接收到发送用户数据的请求的情况下,将用户数据转化成用户数据字符串,并在预设的第一数据库中获取其对应的第一私钥和用户证书。然后利用第一私钥对用户数据字符串进行签名,获得第一签名结果,并根据用户数据字符串、第一签名结果和用户证书获取待加密数据。然后获取加密密钥,并利用加密密钥对待加密数据进行加密,获得加密密文。最后根据加密密钥和加密密文生成二维码。由于第一私钥与第一用户终端对应,这样使得生成的二维码能够与第一用户终端对应。同时,通过获取随机数来对待加密数据加密。这样每个二维码对应的加密密钥是不同的。因此即便加密密钥被窃取,窃取者也不一定能够利用被窃取的加密密钥从二维码中获取用户数据,从而减少了因加密密钥泄露而导致用户数据泄露的几率。
可选地,触发第二用户终端对二维码进行解密,包括:触发第二用户终端根据二维码获取加密密钥和加密密文;根据加密密钥从加密密文中获取用户数据字符串、第一签名结果和用户证书;利用预设的第二公钥对用户证书进行验证;在用户证书验证通过的情况下,从用户证书中获取第一用户终端对应的第一公钥;利用第一公钥和第一签名结果对用户数据字符串进行验证;在用户数据字符串验证通过的情况下,将用户数据字符串转化为用户数据。
可选地,第二用户终端通过以下方式获取第二公钥:在第二数据库中获取第二公钥。
结合图3所示,本公开实施例提供一种用于生成二维码的方法,应用于第一用户终端,该方法包括:
步骤S301,第一用户终端在接收到发送用户数据的请求的情况下,将用户数据转化成用户数据字符串。
步骤S302,第一用户终端在预设的第一数据库中获取其对应的第一私钥和用户证书。
步骤S303,第一用户终端利用第一私钥对用户数据字符串进行签名,获得第一签名结果。
步骤S304,第一用户终端根据用户数据字符串、第一签名结果和用户证书获取待加密数据。
步骤S305,第一用户终端获取加密密钥,加密密钥为随机获取的自然数。
步骤S306,第一用户终端利用加密密钥对待加密数据进行加密,获得加密密文。
步骤S307,第一用户终端根据加密密钥和加密密文生成二维码。
步骤S308,第一用户终端将二维码发送给第二用户终端,触发第二用户终端根据二维码获取加密密钥和加密密文。根据加密密钥从加密密文中获取用户数据字符串、第一签名结果和用户证书,利用预设的第二公钥对用户证书进行验证。在用户证书验证通过的情况下,从用户证书中获取第一用户终端对应的第一公钥。利用第一公钥和第一签名结果对用户数据字符串进行验证,在用户数据字符串验证通过的情况下,将用户数据字符串转化为用户数据。
采用本公开实施例提供的用于生成二维码的方法,通过在接收到发送用户数据的请求的情况下,将用户数据转化成用户数据字符串,并在预设的第一数据库中获取其对应的第一私钥和用户证书。然后利用第一私钥对用户数据字符串进行签名,获得第一签名结果,并根据用户数据字符串、第一签名结果和用户证书获取待加密数据。然后获取加密密钥,并利用加密密钥对待加密数据进行加密,获得加密密文。最后根据加密密钥和加密密文生成二维码。由于第一私钥与第一用户终端对应,这样使得生成的二维码能够与第一用户终端对应。同时,通过获取随机数来对待加密数据加密。这样每个二维码对应的加密密钥是不同的。因此即便加密密钥被窃取,窃取者也不一定能够利用被窃取的加密密钥从二维码中获取用户数据,从而减少了因加密密钥泄露而导致用户数据泄露的几率。
可选地,触发第二用户终端根据二维码获取加密密钥和加密密文,包括:触发第二用户终端对二维码进行扫码操作,获得重组字符串。根据第二预设排列顺序从重组字符串中提取加密密钥和加密密文。
进一步地,根据加密密钥从加密密文中获取用户数据字符串、第一签名结果和用户证书,包括:利用加密密钥对加密密文进行解密,获得待加密数据。根据第一预设排列顺序从待加密数据中提取用户数据字符串、第一签名结果和用户证书。
进一步地,利用预设的第二公钥对用户证书进行验证,包括:根据第二预设算法利用第二公钥、用户证书中包括的第一公钥和用户编码进行计算,获得第二验签结果。在第二验签结果与用户证书中包括的第一验签结果相同的情况下,确定用户证书验证通过。在第二验签结果与用户证书中包括的第一验签结果不同的情况下,确定用户证书验证失败。即第一用户终端没有经过CA颁发证书,是非法的用户终端。此时接收第一用户终端发送的用户数据存在风险。
可选地,利用预设的第二公钥对用户证书进行验证之后,还包括:在用户证书验证失败的情况下,发出第一提示信息,第一提示信息用于表征第一用户终端没有经过CA颁发证书,是非法的用户终端。从而提示第二用户终端接收第一用户终端发送的用户数据存在风险。
进一步地,利用第一公钥和第一签名结果对用户数据字符串进行验证,包括:根据第二预设算法利用第一公钥和用户数据字符串进行计算,获得第二签名结果。在第二签名结果与第一签名结果相同的情况下,确定用户数据字符串验证通过。在第二签名结果与第一签名结果不同的情况下,确定用户数据字符串验证失败。这样能够确定二维码在传输过程中是否被篡改或者替换。
可选地,利用第一公钥和第一签名结果对用户数据字符串进行验证之后,还包括:在第一签名结果验证失败的情况下,发出第二提示信息,第二提示信息用于表征二维码存在被篡改的风险。从而提示第二用户终端继续接收二维码中携带的用户数据可能存在风险。
在一些实施例中,第二用户终端接收第一用户终端发送的二维码,并对二维码进行扫码操作,获得重组字符串。然后根据第二预设排列顺序从重组字符串中还原出加密密钥和加密密文。然后利用加密密钥对加密密文进行解密,获得待加密数据。然后根据第一预设排列顺序从待加密数据中还原出用户数据字符串、第一签名结果和用户证书。并在第二数据库中获取第二公钥,然后利用第二公钥对用户证书进行验证,在验证通过的情况下,获得第一公钥。然后利用第一公钥和第一签名结果对用户数据字符串进行验证,在验证通过的情况下,将用户数据字符串转化为用户数据。这样,通过利用加密密钥对待加密数据进行加密。由于待加密数据对应的加密密钥是动态变化的。因此,即便泄露了一个加密密钥,也难以利用泄露的加密密钥对加密密文进行解密获得待加密数据。从而减少了待加密数据泄露的风险。同时,即便二维码在传输过程中被恶意篡改,也能够通过第一公钥和第一签名结果确定用户数据字符串是否存在风险,从而减少接收错误用户数据风险的几率。
结合图4所示,本公开实施例提供一种用于生成二维码的方法,包括:
步骤S401,第一用户终端在接收到发送用户数据的请求的情况下,将用户数据转化成用户数据字符串。
步骤S402,第一用户终端在预设的第一数据库中获取对应的第一私钥和用户证书。
步骤S403,第一用户终端根据第二预设算法利用第一私钥和用户数据字符串进行计算,获得第一签名结果。
步骤S404,第一用户终端将用户数据字符串、第一签名结果和用户证书按照第一预设排列顺序进行排列,获得待加密数据。
步骤S405,第一用户终端获取加密密钥,加密密钥为随机获取的自然数。
步骤S406,第一用户终端根据第三预设算法利用加密密钥和待加密数据进行计算,获得加密密文。
步骤S407,第一用户终端将加密密钥和加密密文按照第二预设排列顺序进行排列,获得重组字符串;将重组字符串转换为黑白阵列信息,获得二维码。
步骤S408,第一用户终端将二维码发送给第二用户终端。
步骤S409,第二用户终端在接收到二维码的情况下,对二维码进行扫码操作,获得重组字符串。
步骤S410,第二用户终端根据第二预设排列顺序从重组字符串中提取加密密钥和加密密文。
步骤S411,第二用户终端利用加密密钥对加密密文进行解密,获得待加密数据。根据第一预设排列顺序从待加密数据中提取用户数据字符串、第一签名结果和用户证书。
步骤S412,第二用户终端在第二数据库中获取第二公钥,并根据第二预设算法利用第二公钥、用户证书中包括的第一公钥和用户编码进行计算,获得第二验签结果。
步骤S413,第二用户终端在第二验签结果与用户证书中包括的第一验签结果相同的情况下,根据第二预设算法利用第一公钥和用户数据字符串进行计算,获得第二签名结果。
步骤S414,第二用户终端在第二签名结果与第一签名结果相同的情况下,将用户数据字符串转化为用户数据。
采用本公开实施例提供的用于生成二维码的方法,通过利用加密密钥对待加密数据进行加密。由于每个二维码对应的加密密钥都是不同的。因此,即便泄露了一个加密密钥,也难以利用泄露的加密密钥对加密密文进行解密获得待加密数据。从而减少了待加密数据泄露的风险。同时,即便二维码在传输过程中被恶意篡改,也能够通过第一公钥和第一签名结果确定用户数据字符串是否存在风险,从而减少接收错误用户数据风险的几率。
结合图5所示,本公开实施例提供一种用于生成二维码的装置,应用于第一用户终端,该装置包括:转化模块501、第一获取模块502、签名模块503、第二获取模块504、随机数生成模块505、加密模块506和二维码生成模块507。转化模块501被配置为在接收到发送用户数据的请求的情况下,将用户数据转化成用户数据字符串。第一获取模块502被配置为在预设的第一数据库中获取第一用户终端对应的第一私钥和用户证书。签名模块503被配置为利用第一私钥对用户数据字符串进行签名,获得第一签名结果。第二获取模块504被配置为根据用户数据字符串、第一签名结果和用户证书获取待加密数据。随机数生成模块505被配置为获取加密密钥;加密密钥为随机获取的自然数。加密模块506被配置为利用加密密钥对待加密数据进行加密,获得加密密文。二维码生成模块507被配置为根据加密密钥和加密密文生成二维码。
采用本公开实施例提供的用于生成二维码的装置,通过在接收到发送用户数据的请求的情况下,将用户数据转化成用户数据字符串,并在预设的第一数据库中获取其对应的第一私钥和用户证书。然后利用第一私钥对用户数据字符串进行签名,获得第一签名结果,并根据用户数据字符串、第一签名结果和用户证书获取待加密数据。然后获取加密密钥,并利用加密密钥对待加密数据进行加密,获得加密密文。最后根据加密密钥和加密密文生成二维码。由于第一私钥与第一用户终端对应,这样使得生成的二维码能够与第一用户终端对应。同时,通过获取随机数来对待加密数据加密。这样每个二维码对应的加密密钥是不同的。因此即便加密密钥被窃取,窃取者也不一定能够利用被窃取的加密密钥从二维码中获取用户数据,从而减少了因加密密钥泄露而导致用户数据泄露的几率。
可选地,第二获取模块被配置为通过以下方式根据用户数据字符串、第一签名结果和用户证书获取待加密数据:将用户数据字符串、第一签名结果和用户证书按照第一预设排列顺序进行排列,获得待加密数据。
可选地,二维码生成模块被配置为通过以下方式根据加密密钥和加密密文生成二维码:将加密密钥和加密密文按照第二预设排列顺序进行排列,获得重组字符串;将重组字符串转换为黑白阵列信息,获得二维码。
可选地,签名模块被配置为通过以下方式利用第一私钥对用户数据字符串进行签名,获得第一签名结果:根据第一预设算法利用第一私钥和用户数据字符串进行计算,获得第一签名结果。
可选地,用于生成二维码的装置,还包括发送模块,被配置为在二维码生成模块根据第一密钥和加密密文生成二维码之后,将二维码发送给第二用户终端,触发第二用户终端对二维码进行解密,获得用户数据。
可选地,触发第二用户终端对二维码进行解密,包括:触发第二用户终端根据二维码获取加密密钥和加密密文。根据加密密钥从加密密文中获取用户数据字符串、第一签名结果和用户证书。利用预设的第二公钥对用户证书进行验证。在用户证书验证通过的情况下,从用户证书中获取第一用户终端对应的第一公钥。利用第一公钥和第一签名结果对用户数据字符串进行验证。在用户数据字符串验证通过的情况下,将用户数据字符串转化为用户数据。
可选地,利用预设的第二公钥对用户证书进行验证之后,还包括:在用户证书验证失败的情况下,发出第一提示信息,第一提示信息用于表征第一用户终端为非法用户。
可选地,利用第一公钥和第一签名结果对用户数据字符串进行验证之后,还包括:在第一签名结果验证失败的情况下,发出第二提示信息,第二提示信息用于表征二维码存在被非法修改的风险。
结合图6所示,本公开实施例提供一种电子设备,包括处理器(processor)600和存储器(memory)601。可选地,该电子设备还可以包括通信接口(Communication Interface)602和总线603。其中,处理器600、通信接口602、存储器601可以通过总线603完成相互间的通信。通信接口602可以用于信息传输。处理器600可以调用存储器601中的逻辑指令,以执行上述实施例的用于生成二维码的方法。
采用本公开实施例提供的电子设备,通过在接收到发送用户数据的请求的情况下,将用户数据转化成用户数据字符串,并在预设的第一数据库中获取其对应的第一私钥和用户证书。然后利用第一私钥对用户数据字符串进行签名,获得第一签名结果,并根据用户数据字符串、第一签名结果和用户证书获取待加密数据。然后获取加密密钥,并利用加密密钥对待加密数据进行加密,获得加密密文。最后根据加密密钥和加密密文生成二维码。由于第一私钥与第一用户终端对应,这样使得生成的二维码能够与第一用户终端对应。同时,通过获取随机数来对待加密数据加密。这样每个二维码对应的加密密钥是不同的。因此即便加密密钥被窃取,窃取者也不一定能够利用被窃取的加密密钥从二维码中获取用户数据,从而减少了因加密密钥泄露而导致用户数据泄露的几率。
此外,上述的存储器601中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
存储器601作为一种存储介质,可用于存储软件程序、计算机可执行程序,如本公开实施例中的方法对应的程序指令/模块。处理器600通过运行存储在存储器601中的程序指令/模块,从而执行功能应用以及数据处理,即实现上述实施例中用于生成二维码的方法。
存储器601可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器601可以包括高速随机存取存储器,还可以包括非易失性存储器。
可选地,电子设备为第一用户终端。第一用户终端为计算机、手机或平板电脑等。
本公开实施例提供了一种存储介质,存储有有程序指令,所述程序指令在运行时,执行上述的用于生成二维码的方法。
上述的存储介质可以是暂态计算机可读存储介质,也可以是非暂态计算机可读存储介质。非暂态存储介质,包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。
以上描述和附图充分地示出了本公开的实施例,以使本领域的技术人员能够实践它们。其他实施例可以包括结构的、逻辑的、电气的、过程的以及其他的改变。实施例仅代表可能的变化。除非明确要求,否则单独的部件和功能是可选的,并且操作的顺序可以变化。一些实施例的部分和特征可以被包括在或替换其他实施例的部分和特征。而且,本申请中使用的用词仅用于描述实施例并且不用于限制权利要求。如在实施例以及权利要求的描述中使用的,除非上下文清楚地表明,否则单数形式的“一个”(a)、“一个”(an)和“所述”(the)旨在同样包括复数形式。类似地,如在本申请中所使用的术语“和/或”是指包含一个或一个以上相关联的列出的任何以及所有可能的组合。另外,当用于本申请中时,术语“包括”(comprise)及其变型“包括”(comprises)和/或包括(comprising)等指陈述的特征、整体、步骤、操作、元素,和/或组件的存在,但不排除一个或一个以上其它特征、整体、步骤、操作、元素、组件和/或这些的分组的存在或添加。在没有更多限制的情况下,由语句“包括一个…”限定的要素,并不排除在包括所述要素的过程、方法或者设备中还存在另外的相同要素。本文中,每个实施例重点说明的可以是与其他实施例的不同之处,各个实施例之间相同相似部分可以互相参见。对于实施例公开的方法、产品等而言,如果其与实施例公开的方法部分相对应,那么相关之处可以参见方法部分的描述。
本领域技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,可以取决于技术方案的特定应用和设计约束条件。所述技术人员可以对每个特定的应用来使用不同方法以实现所描述的功能,但是这种实现不应认为超出本公开实施例的范围。所述技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
附图中的流程图和框图显示了根据本公开实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。在附图中的流程图和框图所对应的描述中,不同的方框所对应的操作或步骤也可以以不同于描述中所披露的顺序发生,有时不同的操作或步骤之间不存在特定的顺序。例如,两个连续的操作或步骤实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
Claims (10)
1.一种用于生成二维码的方法,其特征在于,应用于第一用户终端,所述方法包括:
在接收到发送用户数据的请求的情况下,将所述用户数据转化成用户数据字符串;
在预设的第一数据库中获取第一用户终端对应的第一私钥和用户证书;
利用所述第一私钥对所述用户数据字符串进行签名,获得第一签名结果;
根据所述用户数据字符串、所述第一签名结果和所述用户证书获取待加密数据;
获取加密密钥,所述加密密钥为随机获取的自然数;
利用所述加密密钥对所述待加密数据进行加密,获得加密密文;
根据所述加密密钥和所述加密密文生成二维码。
2.根据权利要求1所述的方法,其特征在于,根据所述用户数据字符串、所述第一签名结果和所述用户证书获取待加密数据,包括:
将所述用户数据字符串、所述第一签名结果和所述用户证书按照第一预设排列顺序进行排列,获得所述待加密数据。
3.根据权利要求1所述的方法,其特征在于,根据所述加密密钥和所述加密密文生成二维码,包括:
将所述加密密钥和所述加密密文按照第二预设排列顺序进行排列,获得重组字符串;
将所述重组字符串转换为黑白阵列信息,获得所述二维码。
4.根据权利要求1所述的方法,其特征在于,利用所述第一私钥对所述用户数据字符串进行签名,获得第一签名结果,包括:
根据第一预设算法利用所述第一私钥和所述用户数据字符串进行计算,获得第一签名结果。
5.一种用于生成二维码的装置,其特征在于,应用于第一用户终端,所述装置包括:
转化模块,被配置为在接收到发送用户数据的请求的情况下,将所述用户数据转化成用户数据字符串;
第一获取模块,被配置为在预设的第一数据库中获取第一用户终端对应的第一私钥和用户证书;
签名模块,被配置为利用所述第一私钥对所述用户数据字符串进行签名,获得第一签名结果;
第二获取模块,被配置为根据所述用户数据字符串、所述第一签名结果和所述用户证书获取待加密数据;
随机数生成模块,被配置为获取加密密钥,所述加密密钥为随机获取的自然数;
加密模块,被配置为利用所述加密密钥对所述待加密数据进行加密,获得加密密文;
二维码生成模块,被配置为根据所述加密密钥和所述加密密文生成二维码。
6.根据权利要求5所述的装置,其特征在于,第二获取模块被配置为通过以下方式根据所述用户数据字符串、所述第一签名结果和所述用户证书获取待加密数据:
将所述用户数据字符串、所述第一签名结果和所述用户证书按照第一预设排列顺序进行排列,获得所述待加密数据。
7.根据权利要求5所述的装置,其特征在于,二维码生成模块被配置为通过以下方式根据所述加密密钥和所述加密密文生成二维码:
将所述加密密钥和所述加密密文按照第二预设排列顺序进行排列,获得重组字符串;
将所述重组字符串转换为黑白阵列信息,获得所述二维码。
8.根据权利要求5所述的装置,其特征在于,签名模块被配置为通过以下方式利用所述第一私钥对所述用户数据字符串进行签名,获得第一签名结果:
根据第一预设算法利用所述第一私钥和所述用户数据字符串进行计算,获得第一签名结果。
9.一种电子设备,包括处理器和存储有程序指令的存储器,其特征在于,所述处理器被配置为在运行所述程序指令时,执行如权利要求1至4任一项所述的用于生成二维码的方法。
10.一种存储介质,存储有程序指令,其特征在于,所述程序指令在运行时,执行如权利要求1至4任一项所述的用于生成二维码的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211117257.6A CN115204340A (zh) | 2022-09-14 | 2022-09-14 | 用于生成二维码的方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211117257.6A CN115204340A (zh) | 2022-09-14 | 2022-09-14 | 用于生成二维码的方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115204340A true CN115204340A (zh) | 2022-10-18 |
Family
ID=83572630
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211117257.6A Pending CN115204340A (zh) | 2022-09-14 | 2022-09-14 | 用于生成二维码的方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115204340A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180152290A1 (en) * | 2015-07-28 | 2018-05-31 | Fujian Landi Commercial Equipment Co., Ltd. | Method and system for encrypting and decrypting two-dimensional code mask |
CN108154365A (zh) * | 2017-12-19 | 2018-06-12 | 恒宝股份有限公司 | 一种生成动态二维码的安全设备、方法及系统 |
CN108900302A (zh) * | 2018-06-19 | 2018-11-27 | 广州佳都数据服务有限公司 | 二维码生成、认证方法、生成终端及认证设备 |
CN109615030A (zh) * | 2018-10-12 | 2019-04-12 | 阿里巴巴集团控股有限公司 | 基于安全应用的二维码防伪方法、设备及系统 |
CN109766979A (zh) * | 2019-01-18 | 2019-05-17 | 北京思源互联科技有限公司 | 一种二维码的生成方法、验证方法及其装置 |
-
2022
- 2022-09-14 CN CN202211117257.6A patent/CN115204340A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180152290A1 (en) * | 2015-07-28 | 2018-05-31 | Fujian Landi Commercial Equipment Co., Ltd. | Method and system for encrypting and decrypting two-dimensional code mask |
CN108154365A (zh) * | 2017-12-19 | 2018-06-12 | 恒宝股份有限公司 | 一种生成动态二维码的安全设备、方法及系统 |
CN108900302A (zh) * | 2018-06-19 | 2018-11-27 | 广州佳都数据服务有限公司 | 二维码生成、认证方法、生成终端及认证设备 |
CN109615030A (zh) * | 2018-10-12 | 2019-04-12 | 阿里巴巴集团控股有限公司 | 基于安全应用的二维码防伪方法、设备及系统 |
CN109766979A (zh) * | 2019-01-18 | 2019-05-17 | 北京思源互联科技有限公司 | 一种二维码的生成方法、验证方法及其装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10659220B2 (en) | Method and system for encrypting and decrypting two-dimensional code mask | |
JP4866863B2 (ja) | セキュリティコード生成方法及びユーザ装置 | |
CN105760764B (zh) | 一种嵌入式存储设备文件的加解密方法、装置及终端 | |
US8989385B2 (en) | Data encryption method, data verification method and electronic apparatus | |
CN107317677B (zh) | 密钥存储及设备身份认证方法、装置 | |
CN110690956B (zh) | 双向认证方法及系统、服务器和终端 | |
CN113132099B (zh) | 一种基于硬件密码设备的传输文件加解密方法及装置 | |
CN107294964B (zh) | 一种信息传输的方法 | |
CN105162797A (zh) | 一种基于视频监控系统的双向认证方法 | |
CN104468937A (zh) | 移动终端的数据加、解密方法、装置及保护系统 | |
CN113472793A (zh) | 一种基于硬件密码设备的个人数据保护系统 | |
CN115883052A (zh) | 数据加密方法、数据解密方法、设备及存储介质 | |
CN104994095A (zh) | 一种设备认证方法、客户端、服务器及系统 | |
CN110771190A (zh) | 对数据的控制访问 | |
CN114915504A (zh) | 安全芯片初始认证方法及系统 | |
CN111008400A (zh) | 数据处理方法、装置及系统 | |
CN109412799B (zh) | 一种生成本地密钥的系统及其方法 | |
CN110968878A (zh) | 信息传输方法、系统、电子设备及可读介质 | |
CN111541652B (zh) | 一种用于提高秘密信息保管及传递安全性的系统 | |
CN114036546A (zh) | 基于手机号的身份验证方法、装置、计算机设备和介质 | |
CN105430022B (zh) | 一种数据输入控制方法和终端设备 | |
CN115204340A (zh) | 用于生成二维码的方法、装置、电子设备及存储介质 | |
CN112637140A (zh) | 密码传输方法、终端、服务器及可读存储介质 | |
CN112906034B (zh) | 一种密钥保存方法、装置、存储介质及电子设备 | |
CN113162766B (zh) | 一种密钥分量的密钥管理方法和系统 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20221018 |