CN113901437A - 密码生成方法、装置、计算机设备和存储介质 - Google Patents
密码生成方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN113901437A CN113901437A CN202111263790.9A CN202111263790A CN113901437A CN 113901437 A CN113901437 A CN 113901437A CN 202111263790 A CN202111263790 A CN 202111263790A CN 113901437 A CN113901437 A CN 113901437A
- Authority
- CN
- China
- Prior art keywords
- user identification
- data
- identification data
- digit
- password
- 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
Images
Classifications
-
- 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/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/45—Structures or tools for the administration of authentication
- G06F21/46—Structures or tools for the administration of authentication by designing passwords or checking the strength of passwords
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
本申请涉及一种密码生成方法、装置、计算机设备和存储介质。所述方法包括:获取多个用户标识数据;针对每一个所述用户标识数据,从预先生成的随机数队列中,选取所述用户标识数据的各个数位对应的随机数值;对所述用户标识数据和所述用户标识数据的各个数位对应的随机数值进行模运算处理,得到各个所述用户标识数据对应的用户标识处理数据;对每个所述用户标识处理数据进行加密处理,得到用户标识加密数据组;根据所述用户标识加密数据组中的各个用户标识加密数据,生成密码。本方法将用户标识数据作为密码数据的数据来源,并且将用户标识数据与随机数进行关联,能够提高所生成密码的安全性。
Description
技术领域
本申请涉及信息安全技术领域,特别是涉及一种密码生成方法、装置、计算机设备和存储介质。
背景技术
随着互联网技术的发展,用户在登录各种信息***、应用程序时基本都需要设置账号和密码,而随着信息化应用范围的扩大,密码的安全问题也越来越突出,密码的生成过程容易被不法用户监听窃取,如果密码随机性不够,则容易被破解。因此,如何安全地生成密码,是一个重要的安全问题。
发明内容
基于此,有必要针对上述密码的生成过程容易被不法用户监听窃取,如果密码随机性不够,则容易被破解的技术问题,提供一种密码生成方法、装置、计算机设备和存储介质。
一种密码生成方法,所述方法包括:
获取多个用户标识数据;
针对每一个所述用户标识数据,从预先生成的随机数队列中,选取所述用户标识数据的各个数位对应的随机数值;
对所述用户标识数据和所述用户标识数据的各个数位对应的随机数值进行模运算处理,得到各个所述用户标识数据对应的用户标识处理数据;
对每个所述用户标识处理数据进行加密处理,得到用户标识加密数据组;
根据所述用户标识加密数据组中的各个用户标识加密数据,生成密码。
在其中一个实施例中,所述获取多个用户标识数据,包括:
获取多个初始用户标识数据;
对各个所述初始用户标识数据进行数字转换处理,得到与所述初始用户标识数据对应的由目标进制的数字构成的转换后的用户标识数据,作为所述用户标识数据。
在其中一个实施例中,所述从预先生成的随机数队列中,选取所述用户标识数据的各个数位对应的随机数值,包括:
获取所述用户标识数据的总位数;
基于所述总位数,从所述预先生成的随机数队列中,选取目标长度的随机数;
基于各个所述数位的位次,从所述目标长度的随机数中,分别确定出与各个所述数位对应的随机数值。
在其中一个实施例中,所述对所述用户标识数据和所述用户标识数据的各个数位对应的随机数值进行模运算处理,得到各个所述用户标识数据对应的用户标识处理数据,包括:
分别对所述用户标识数据中各个所述数位上的数值和各个所述数位对应的所述随机数值进行求和,得到各个所述数位对应的算术和;
对各个所述数位对应的算术和进行取模运算,得到所述用户标识数据各个所述数位对应的余数值;
基于各个所述数位对应的余数值,组成所述用户标识数据对应的用户标识处理数据。
在其中一个实施例中,所述对每个所述用户标识处理数据进行加密处理,得到用户标识加密数据组,包括:
通过加密机以及与所述加密机匹配的工作密钥,对每个所述用户标识处理数据进行加密,得到所述用户标识加密数据组。
在其中一个实施例中,所述根据所述用户标识加密数据组中的各个用户标识加密数据,生成密码,包括:
对所述用户标识加密数据组中的每个用户标识加密数据进行加密运算,得到加密值;
对所述加密值中属于非目标进制的字符进行进制转换处理,得到所述非目标进制的字符对应的数字;
组合所述非目标进制的字符对应的数字和所述加密值中目标进制的数字,得到密码。
在其中一个实施例中,在根据所述用户标识加密数据组中的每个用户标识加密数据,生成密码之后,还包括:
获取预设位数的存储主密钥;所述预设位数与所述加密值的位数相同;
从所述随机数队列中选取所述预设位数的目标随机数;
通过所述存储主密钥,对由所述用户标识数据组、所述用户标识加密数据组、所述目标随机数和所述密码拼装得到的数据进行加密计算,得到所述密码的密文,作为存储密钥。
一种密码生成装置,所述装置包括:
获取模块,用于获取多个用户标识数据;
选取模块,用于针对每一个所述用户标识数据,从预先生成的随机数队列中,选取所述用户标识数据的各个数位对应的随机数值;
处理模块,用于对所述用户标识数据和所述用户标识数据的各个数位对应的随机数值进行模运算处理,得到各个所述用户标识数据对应的用户标识处理数据;
加密模块,用于对每个所述用户标识处理数据进行加密处理,得到用户标识加密数据组;
生成模块,用于根据所述用户标识加密数据组中的各个用户标识加密数据,生成密码。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取多个用户标识数据;
针对每一个所述用户标识数据,从预先生成的随机数队列中,选取所述用户标识数据的各个数位对应的随机数值;
对所述用户标识数据和所述用户标识数据的各个数位对应的随机数值进行模运算处理,得到各个所述用户标识数据对应的用户标识处理数据;
对每个所述用户标识处理数据进行加密处理,得到用户标识加密数据组;
根据所述用户标识加密数据组中的各个用户标识加密数据,生成密码。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取多个用户标识数据;
针对每一个所述用户标识数据,从预先生成的随机数队列中,选取所述用户标识数据的各个数位对应的随机数值;
对所述用户标识数据和所述用户标识数据的各个数位对应的随机数值进行模运算处理,得到各个所述用户标识数据对应的用户标识处理数据;
对每个所述用户标识处理数据进行加密处理,得到用户标识加密数据组;
根据所述用户标识加密数据组中的各个用户标识加密数据,生成密码。
上述密码生成方法、装置、计算机设备和存储介质,通过获取多个用户标识数据,并从预先生成的随机数队列中,选取每个用户标识数据的各个数位对应的随机数值,对每个用户标识数据及每个用户标识数据的各个数位对应的随机数值进行模运算处理,得到各个用户标识数据对应的用户标识处理数据,进一步对每个用户标识处理数据进行加密处理,得到用户标识加密数据组,最后根据用户标识加密数据组中的各个用户标识加密数据,生成密码。该方法通过将用户标识数据作为密码数据的数据来源,并且将用户标识数据与随机数进行关联处理,保证了所得到的用户标识处理数据的安全性,进一步保证了基于用户标识处理数据得到的用户标识加密数据的唯一性,从而使得基于用户标识加密数据生成的密码具有较高的不易被破解,保证了所生成密码的安全性。
附图说明
图1为一个实施例中密码生成方法的流程示意图;
图2为另一个实施例中密码生成方法的流程示意图;
图3为一个实施例中基于量子的密码生成与存储的***结构示意图;
图4为一个实施例中密码生成装置的结构框图;
图5为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
需要说明的是,本公开所涉及的用户标识数据,为经用户授权或者经过各方充分授权的数据。
在一个实施例中,如图1所示,提供了一种密码生成方法,本实施例以该方法应用于终端进行举例说明,可以理解的是,该方法也可以应用于服务器,还可以应用于包括终端和服务器的***,并通过终端和服务器的交互实现。本实施例中,该方法包括以下步骤:
步骤S110,获取多个用户标识数据。
其中,用户标识数据表示用户的特有信息,例如,用户标识数据可以为用户的账户、手机号码和身份证号码等,可以理解的是,用户标识数据也可以为用户的特有信息的组合,例如,账户+手机号码的组合,或者手机号码+身份证号码的组合等。
具体实现中,在获取多个用户标识数据后,可从各个用户标识数据中选取出m个用户标识数据,组合成用户标识数据组,用户标识数据组可记为{用户标识数据1,用户标识数据2,…,用户标识数据m}。
步骤S120,针对每一个用户标识数据,从预先生成的随机数队列中,选取用户标识数据的各个数位对应的随机数值。
其中,预先生成的随机数队列可以为十进制的随机数序列。
其中,数位表示用户标识数据中的每个数字所占的位置,例如,用户标识数据为150xxxx1234,则该用户标识数据的总位数为11,具有11个数位:1、5、0、…1、2、3、4。
具体实现中,针对每一个用户标识数据,在选取用户标识数据的各个数位对应的随机数值之前,可先获取该用户标识数据的总位数N,基于总位数N,从预先生成的随机数队列中,选取目标长度的随机数,然后基于总位数N中的各个位数的位次,从目标长度的随机数中,分别确定出与各个数位对应的随机数值。其中,目标长度为基于总位数N确定的长度,例如,目标长度可以为N2,N3等,位次可表示将用户标识数据横向排列后的各个位数的顺序,即位次为1、2、…N。
其中,随机数队列可以通过下述方式得到:生成二进制随机数数列,对二进制随机数数列进行进制转换处理,得到目标进制的随机数数列,作为预先生成的随机数队列,其中,目标进制可以为十进制。
实际应用中,可以通过量子随机数发生器(Quantum Random Number Generator,QRNG)生成二进制流形式的随机数数列D0,然后将生成的二进制随机数数列转换为十进制的0-9或十六进制的ABCDEF,形成数列D1。然后对数列D1作模十转换处理,具体地,转换规则可以为对于数列D1中的数字0-9无需进行转换,对于数列D1中的字符ABCDEF作模十转换,得到数列D2,即将数字除以10后取余,映射关系如下表1所示:
表1原始数据做模十处理后的映射关系表
原始数据 | 0-9 | A | B | C | D | E | F |
模十结果 | 0-9 | 0 | 1 | 2 | 3 | 4 | 5 |
在得到转换后的数列D2后,将数列D2存入预设的队列中,该队列可采用先进先出的队列模十,提供足够容量的存储空间,在数据从队列中取出后,便将取出的数据丢弃。
步骤S130,对用户标识数据和用户标识数据的各个数位对应的随机数值进行模运算处理,得到各个用户标识数据对应的用户标识处理数据。
具体实现中,对用户标识数据和用户标识数据的各个数位对应的随机数值的模运算表示进行将用户标识数据的各个数位上的数值与各个数位对应的随机数值相加后作取模运算。
例如,设用户标识数据的数位i上的数值为ai,从预先生成的随机数队列中选取的该数位i对应的随机数值为bi,i=1、2…N,则对用户标识数据和用户标识数据的各个数位对应的随机数值的模运算表示对用户标识数据的数位i上的数值ai与该数位i对应的随机数值bi相加后作取模运算,即计算ai+bi的算术和后除以模数p的余数,即计算(ai+bi)/p的余数,类似地,可计算得到用户标识数据各个数位处理后的数据值(a1+b1)/p、(a2+b2)/p、…(aN+bN)/p,由各个数位处理后的数据值构成用户标识处理数据,进一步地,由各个用户标识数据对应的用户标识处理数据组成用户标识处理数据组,记为{用户标识处理数据1,用户标识处理数据2,…,用户标识处理数据m}。
步骤S140,对每个用户标识处理数据进行加密,得到用户标识加密数据组。
具体实现中,可以通过加密机以及与加密机匹配的工作密钥,对每个用户标识处理数据进行加密,得到每个用户标识处理数据对应的用户标识加密数据,将各个用户标识加密数据组成用户标识加密数据组,记为{用户标识加密数据1,用户标识加密数据2,…,用户标识加密数据m}。
步骤S150,根据用户标识加密数据组中的各个用户标识加密数据,生成密码。
具体实现中,可以通过对用户标识加密数据组中的各个用户标识加密数据进行加密运算,得到加密值,对加密值中属于非目标进制的字符进行取模运算,得到非目标进制的字符对应的数字;组合非目标进制的字符对应的数字和加密值中目标进制的数字,得到密码。
上述密码生成方法中,通过获取多个用户标识数据,并从预先生成的随机数队列中,选取每个用户标识数据的各个数位对应的随机数值,对每个用户标识数据及每个用户标识数据的各个数位对应的随机数值进行模运算处理,得到各个用户标识数据对应的用户标识处理数据,进一步对每个用户标识处理数据进行加密处理,得到用户标识加密数据组,最后根据用户标识加密数据组中的各个用户标识加密数据,生成密码。该方法通过将用户标识数据作为密码数据的数据来源,并且将用户标识数据与随机数进行关联处理,保证了所得到的用户标识处理数据的安全性,进一步保证了基于用户标识处理数据得到的用户标识加密数据的唯一性,从而使得基于用户标识加密数据生成的密码具有较高的不易被破解,保证了所生成密码的安全性。
在一示例性实施例中,上述步骤S110获取多个用户标识数据可以通过下述步骤实现:获取多个初始用户标识数据;对各个初始用户标识数据进行数字转换处理,得到与初始用户标识数据对应的由目标进制的数字构成的转换后的用户标识数据,作为用户标识数据。
其中,数字转换处理可表示将非目标进制的数据转换为目标进制的数字,其中,目标进制可以为十进制。
具体实现中,在获取多个初始用户标识数据后,若初始用户标识数据并非十进制的纯数字,则需要对初始用户标识数据进行数字转换处理,转换为十进制的纯数字,例如,对于初始用户标识数据:用户账号,若用户账号为AE3001,其中,字符AE并非十进制数字,因此,可对AE进行取模处理,得到AE对应的十进制数字为:04,因此,得到的转换后的用户账号为:043001。在对各个用户标识数据均转换为十进制的纯数字后,将各个转换后的用户标识数据,组合成用户标识数据组,用户标识数据组可记为{用户标识数据1,用户标识数据2,…用户标识数据m}。
本实施例中,通过对获取的初始用户标识数据进行数字转换处理,将得到的由目标进制的数字构成的转换后的用户标识数据,作为用户标识数据,以便于后续可以直接对用户标识数据进行模运算处理。
在一示例性实施例中,上述步骤S120从预先生成的随机数队列中,选取用户标识数据的各个数位对应的随机数值可以通过下述步骤实现:获取用户标识数据的总位数;基于总位数,从预先生成的随机数队列中,选取目标长度的随机数;基于各个数位的位次,从目标长度的随机数中,分别确定出与各个数位对应的随机数值。
其中,总位数表示用户标识数据中数位的个数,例如,若用户标识数据为5122,有4个数位,则该用户标识数据的总位数为4。
其中,目标长度基于用户标识数据的总位数确定,若记总位数为N,则目标长度可以为N2,N3等。
其中,位次可表示将用户标识数据横向排列后的各个位数的顺序,例如,对于用户标识数据20146,数字2的位次为1,数字0的位次为2,数字1的位次为3,数字4的位次为4,数字6的位次为5。
具体实现中,以目标长度为N2为例,针对任一个用户标识数据,设该用户标识数据的总位数为N,则可基于该总位数N,从预先生成的随机数队列中,选取出长度为N2的随机数,然后基于该用户标识数据中某一数位的位次n,1≤n≤N,从N2个随机数中,抽取位于第n2位的随机数,作为位次为n的数位对应的随机数值,以此类推,从随机数队列中,得到用户标识数据各个数位对应的随机数值。
举例说明,设用户标识数据为5123,总位数为4,则可从预先生成的随机数队列中选取出长度为42=16位的随机数,对于数字5所在的数位,位次为1,则从16位随机数中,选取第12=1个随机数,作为数字5所在数位对应的随机数值;类似地,对于数字2所在的数位,位次为3,则从16位随机数中,选取第32个,即第9个随机数,作为数字5所在数位对应的随机数值。
本实施例中,先基于用户标识数据的总位数,从预先生成的随机数队列中,选取目标长度的随机数,然后基于各个数位的位次,从目标长度的随机数中,分别确定出与各个数位对应的随机数值,该方法相比直接从预先生成的随机数队列中直接选取随机数值的方法,进一步提高了所得到的各个随机数值的安全性。
在一示例性实施例中,上述步骤S130对用户标识数据和用户标识数据的各个数位对应的随机数值进行模运算处理,得到各个用户标识数据对应的用户标识处理数据,具体包括:分别对用户标识数据中各个数位上的数值和各个数位对应的随机数值进行求和,得到各个数位对应的算术和;对各个数位对应的算术和进行取模运算,得到用户标识数据各个数位对应的余数值,基于各个所述数位对应的余数值,组成所述用户标识数据对应的用户标识处理数据。
其中,取模运算表示计算各个数位对应的算术和除以模数得到的余数,本实施例中的模数可以为10。
具体实现中,设用户标识数据为:abcd,该用户标识数据各个数位对应的随机数值分别为:a'b'c'd',模数为p,则分别对用户标识数据中各个数位上的数值和各个数位对应的随机数值进行求和,即是分别计算a+a'、b+b'、c+c'、d+d'的算术和,在得到各个数位的算术和后,分别对各个算术和进行取模运算,即是分别计算(a+a')除以模数p的余数,(b+b')除以模数p的余数,(c+c')除以模数p的余数,(d+d')除以模数p的余数,设取模运算后得到的各个数位对应的余数值分别为:a″、b″、c″、d″,则基于各个数位对应的余数值得到的用户标识数据为abcd对应的用户标识处理数据为:a″b″c″d″。
本实施例中,通过对用户标识数据中各个数位上的数值和各个数位对应的随机数值进行模十加运算处理,得到各个用户标识数据对应的用户标识处理数据,这种处理方使可以提高所得到的用户标识处理数据的随机性和安全性,从而提高基于用户标识处理数据得到的密码的安全性。
在一示例性实施例中,上述步骤S140具体包括:通过加密机以及与加密机匹配的工作密钥,对每个用户标识处理数据进行加密,得到用户标识加密数据组。
其中,加密机是一种主机加密设备,主要通过加密机和主机之间的通信实现加密。
具体实现中,针对每一个用户标识处理数据,可以通过硬件加密机,以及与硬件加密机相匹配的工作密钥(例如,IMK1),对用户标识处理数据进行加密,得到各个用户标识处理数据对应的用户标识加密数据,将各个用户标识加密数据组成用户标识加密数据组,记为{用户标识加密数据1,用户标识加密数据2,…,用户标识加密数据m}。
本实施例中,通过硬件加密机对用户标识处理数据进行加密,可以防止暴力破解、密码猜测和数据恢复等。
在一示例性实施例中,上述步骤S150具体包括:对用户标识加密数据组中的每个用户标识加密数据进行加密运算,得到加密值;对加密值中的非目标进制的字符进行进制转换处理,得到非目标进制的字符对应的数字;组合非目标进制的字符对应的数字和加密值中目标进制的数字,得到密码。
其中,加密运算方法可以采用国密MAC运算。
其中,非目标进制可以为除目标进制外的其他进制的字符,目标进制可以为十进制,则非目标进制可以为十六进制。
具体实现中,以采用国密MAC运算的加密方法为例,将用户标识加密数据组中的每个用户标识加密数据进行加密运算,具体可通过MAC密钥对各个用户标识加密数据进行加密运算,表示为: 加密所得到的32位MAC值,可作为加密值。在得到MAC值后,从左到右分别抽取出MAC值中所有的非目标进制的字符,如抽取十六进制的字符(A-F),以及,抽取所有的目标进制的字符,如抽取十进制的字符(0-9),并对每个非目标进制的字符进行进制转换处理,例如,将十六进制字符转换为十进制数字,将非目标进制的十六进制的字符转换后的十进制数字与从MAC值中抽取的十进制数字从左到右进行排列,将得到的排列结果中的前s位的数字作为生成的密码。其中,非目标进制字符转换后的数字位于从MAC值中抽取的目标进制数字的左边。
本实施例中,在得到基于每个用户标识加密数据得到的加密值后,对加密值进行进一步处理组合,生成密码,通过这种计算方法可以极大地提高所生成密码的安全性。
在一示例性实施例中,在步骤S150生成密码之后,还包括:获取预设位数的存储主密钥;预设位数与加密值的位数相同;从随机数队列中选取预设位数的目标随机数;通过存储主密钥,对由用户标识数据组、用户标识加密数据组、目标随机数和密码拼装得到的数据进行加密计算,得到密码的密文,作为存储密钥。
具体实现中,在生成密码后,还需对密码进行存储,为了安全,密码不直接以明文保存,而采用密文保存,具体地,可以先通过设置预设位数的存储主密钥,从随机数队列中选取该预设位数的目标随机数,然后将用户标识数据组、用户标识加密数据组、目标随机数和密码进行拼装,得到拼装数据:
然后使用存储主密钥对拼装数据进行加密计算,得到密文,密文的计算公式可表示为:
密文的计算过程包括:(1)拼装数据,如果数据本身已经满足32位分组整数倍则不补位,如果不满足则补位最少的X’00’到32位分组整数倍;(2)补位后数据,按32位分组;(3)使用32位0和数据第一组进行异或得到第一组加密数据,然后使用存储密钥的32字节对数据分组执行CBC模式加密,即前一组加密结果和后一组数据异或然后使用密钥加密,一直处理到最后一组(最后一组和前一组加密结果异或但不加密),取最后一组异或数据,作为密码的密文。
在得到密文后,将用户标识数据组、用户标识加密数据组、目标随机数和密文关联后进行保存。
本实施例中,通过用户标识数据组、用户标识加密数据组与随机数进行关联,并且叠加上生成的密码,来计算密文,使得所得到的密文也具有较高的安全性,从而提高了密码存储的安全性。
在另一示例性实施例中,如图2所示,还提供了一种密码生成方法,本实施例中,该方法包括以下步骤:
步骤S201,获取多个用户标识数据;
步骤S202,针对任一个用户标识数据,获取该用户标识数据的总位数;
步骤S203,基于总位数,从预先生成的随机数队列中,选取目标长度的随机数;
步骤S204,基于该用户标识数据的各个数位的位次,从目标长度的随机数中,分别确定出与各个数位对应的随机数值;
步骤S205,分别对用户标识数据中各个数位上的数值和各个数位对应的随机数值进行求和,得到各个数位对应的算术和;
步骤S206,对各个数位对应的算术和进行取模运算,得到用户标识数据各个数位对应的余数值;
步骤S207,基于各个数位对应的余数值,组成用户标识数据对应的用户标识处理数据;
步骤S208,对每个用户标识处理数据进行加密处理,得到用户标识加密数据组;
步骤S209,对用户标识加密数据组中的每个用户标识加密数据进行加密运算,得到加密值;
步骤S210,对加密值中不属于目标进制的字符进行进制转换处理,得到不属于目标进制的字符对应的数字;
步骤S211,组合不属于目标进制的字符对应的数字和加密值中目标进制的数字,得到密码。
本实施例提供的密码生成方法,通过将用户标识数据作为密码数据的数据来源,并且将用户标识数据与随机数进行关联处理,保证了所得到的用户标识处理数据的安全性,进一步保证了基于用户标识处理数据得到的用户标识加密数据的唯一性,从而使得基于用户标识加密数据生成的密码具有较高的不易被破解,保证了所生成密码的安全性。
在一个实施例中,为了便于本领域技术人员理解本申请实施例,以下将结合附图的具体示例进行说明。参考图3,示出了一种基于量子的密码生成与存储的***结构示意图,包括:随机数列生成模块301、密码生成模块302和密码存储模块303,其中,随机数生成模块301包括:随机二进制数列单元301a、数列转换单元301b和数列队列单元301c;密码生成模块302包括:用户标识数据组采集单元302a、用户标识处理单元302b、用户标识加密数据生成单元302c和密码生成单元302d;密码存储模块303包括:存储密钥生成单元303a、密文计算单元303b和用户密码信息存储单元303c,各模块下各单元的功能说明如下:
随机数列生成模块301:
随机二进制数列单元301a,用于生成二进制随机数列。具体通过量子随机数发生器(QRNG),生成随机数数列,以二进制流的形式,形成数列D0。
数列转换单元301b,用于将二进制数列转换成纯数字数列。具体用于将随机二进制数列单元301a生成的数列D0,每隔4位,将4位的二进制数转换成0-9或ABCDEF的十六进制数,形成数列D1;再对数列D1做模十处理,形成数列D2。
数列队列单元301c,用于提供足够容量的存储空间,存储数列D2。
密码生成模块302:
用户标识数据组采集单元302a,用于采集用户标识数据D3,并对用户标识数据D3进行模十处理,转换为十进制的纯数字D4,选取m个用户标识数据,构成用户标识数据组{用户标识数据1,用户标识数据2,…,用户标识数据m}。
用户标识处理单元302b,用于针对每一个用户标识数据,基于总位数N从数列队列单元301c选取出N2位数据D5,基于各个数位的位次n,从数据D5中抽取第n2位的数据Yn,将数据Yn拼接成D6,即D6={Y0...Yn},D6也是N位。D3和D6的各个数字上的数字做模十加处理,将处理后的数值组成用户标识处理数据,进而构成用户标识处理数据组{用户标识处理数据1,用户标识处理数据2,…,用户标识处理数据m}。
用户标识加密数据生成单元302c,针对每一个用户标识处理数据,通过硬件加密机,以及与硬件加密机相匹配的工作密钥(例如,IMK1),对用户标识处理数据进行加密,得到各个用户标识处理数据对应的用户标识加密数据,将各个用户标识加密数据组成用户标识加密数据组{用户标识加密数据1,用户标识加密数据2,…,用户标识加密数据m}。
密码生成单元302d,用于由用户标识加密数据1,用户标识加密数据2,用户标识加密数据3,用户标识加密数据m,经过国密MAC运算,得到密码,密码位数以9为例,密码生成过程包括:
(2)从左到右分别抽取出MAC值中所有的十六进制字符(A-F),并对每个十六进制字符进行进制转换处理,即将十六进制字符转换为十进制数字;
(3)左到右分别抽取出MAC值中所有的十进制的数字(0-9);
(4)将步骤(2)和步骤(3)得出的数据从左至右排列,步骤3的结果放在步骤2结果之后;
(5)从步骤(4)得出的结果中,取出前9位数字,作为密码。
密码存储模块303:
存储密钥生成单元303a,用于设置32位的存储主密钥,从随机数列生成模块001,获取32位随机数,使用存储主密钥对随机数进行加密,得到32位的密文,作为存储密钥。
密文计算单元303b,用于将用户标识数据组、用户标识加密数据组、目标随机数和密码进行拼装,得到拼装数据,通过存储密钥,对拼装数据进行加密计算,得到密码的密文。
用户密码信息存储单元303c,用于将用户标识数据组、用户标识加密数据组、目标随机数和密文关联后进行保存。
本申请所提供的基于量子的密码生成与存储的方法中,通过使用量子随机数发生器产生随机数,并且随机与业务数据进行关联转换,保证随机数的安全性,在存储上,通过用户标识与随机数进行数据转换,并且叠加上生成的密码,使用硬件加密机进行加密来存储。这样存储密文不仅与用户标识强关联,而且用户标识与生成的密码做运算,提高了密文的安全性。
应该理解的是,虽然图1-3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-3中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图4所示,提供了一种密码生成装置,包括:获取模块401、选取模块402、处理模块403、加密模块404和生成模块405,其中:
获取模块401,用于获取多个用户标识数据;
选取模块402,用于针对每一个用户标识数据,从预先生成的随机数队列中,选取用户标识数据的各个数位对应的随机数值;
处理模块403,用于对用户标识数据和用户标识数据的各个数位对应的随机数值进行模运算处理,得到各个用户标识数据对应的用户标识处理数据;
加密模块404,用于对每个用户标识处理数据进行加密处理,得到用户标识加密数据组;
生成模块405,用于根据用户标识加密数据组中的各个用户标识加密数据,生成密码。
在一个实施例中,上述获取模块401,具体用于获取多个初始用户标识数据;对各个初始用户标识数据进行数字转换处理,得到与初始用户标识数据对应的由目标进制的数字构成的转换后的用户标识数据,作为用户标识数据。
在一个实施例中,上述选取模块402,具体用于获取用户标识数据的总位数;基于总位数,从预先生成的随机数队列中,选取目标长度的随机数;基于各个数位的位次,从目标长度的随机数中,分别确定出与各个数位对应的随机数值。
在一个实施例中,上述处理模块403,具体用于分别对用户标识数据中各个数位上的数值和各个数位对应的随机数值进行求和,得到各个数位对应的算术和;对各个数位对应的算术和进行取模运算,得到用户标识数据各个数位对应的余数值;基于各个数位对应的余数值,组成用户标识数据对应的用户标识处理数据。
在一个实施例中,上述加密模块404,具体用于通过加密机以及与加密机匹配的工作密钥,对每个用户标识处理数据进行加密,得到用户标识加密数据组。
在一个实施例中,上述生成模块405,具体用于对用户标识加密数据组中的每个用户标识加密数据进行加密运算,得到加密值;对加密值中属于非目标进制的字符进行进制转换处理,得到非目标进制的字符对应的数字;组合非目标进制的字符对应的数字和加密值中目标进制的数字,得到密码。
在一个实施例中,上述装置还包括密文生成模块,用于获取预设位数的存储主密钥;预设位数与加密值的位数相同;从随机数队列中选取预设位数的目标随机数;通过存储主密钥,对由用户标识数据组、用户标识加密数据组、目标随机数和密码拼装得到的数据进行加密计算,得到密码的密文,作为存储密钥。
需要说明的是,本申请的密码生成装置与本申请的密码生成方法一一对应,在上述密码生成方法的实施例阐述的技术特征及其有益效果均适用于密码生成装置的实施例中,具体内容可参见本申请方法实施例中的叙述,此处不再赘述,特此声明。此外,上述密码生成装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图5所示。该计算机设备包括通过***总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***和计算机程序。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种密码生成方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种密码生成方法,其特征在于,所述方法包括:
获取多个用户标识数据;
针对每一个所述用户标识数据,从预先生成的随机数队列中,选取所述用户标识数据的各个数位对应的随机数值;
对所述用户标识数据和所述用户标识数据的各个数位对应的随机数值进行模运算处理,得到各个所述用户标识数据对应的用户标识处理数据;
对每个所述用户标识处理数据进行加密处理,得到用户标识加密数据组;
根据所述用户标识加密数据组中的各个用户标识加密数据,生成密码。
2.根据权利要求1所述的方法,其特征在于,所述获取多个用户标识数据,包括:
获取多个初始用户标识数据;
对各个所述初始用户标识数据进行数字转换处理,得到与所述初始用户标识数据对应的由目标进制的数字构成的转换后的用户标识数据,作为所述用户标识数据。
3.根据权利要求1所述的方法,其特征在于,所述从预先生成的随机数队列中,选取所述用户标识数据的各个数位对应的随机数值,包括:
获取所述用户标识数据的总位数;
基于所述总位数,从所述预先生成的随机数队列中,选取目标长度的随机数;
基于各个所述数位的位次,从所述目标长度的随机数中,分别确定出与各个所述数位对应的随机数值。
4.根据权利要求1所述的方法,其特征在于,所述对所述用户标识数据和所述用户标识数据的各个数位对应的随机数值进行模运算处理,得到各个所述用户标识数据对应的用户标识处理数据,包括:
分别对所述用户标识数据中各个所述数位上的数值和各个所述数位对应的所述随机数值进行求和,得到各个所述数位对应的算术和;
对各个所述数位对应的算术和进行取模运算,得到所述用户标识数据各个所述数位对应的余数值;
基于各个所述数位对应的余数值,组成所述用户标识数据对应的用户标识处理数据。
5.根据权利要求1所述的方法,其特征在于,所述对每个所述用户标识处理数据进行加密处理,得到用户标识加密数据组,包括:
通过加密机以及与所述加密机匹配的工作密钥,对每个所述用户标识处理数据进行加密,得到所述用户标识加密数据组。
6.根据权利要求1所述的方法,其特征在于,所述根据所述用户标识加密数据组中的各个用户标识加密数据,生成密码,包括:
对所述用户标识加密数据组中的每个用户标识加密数据进行加密运算,得到加密值;
对所述加密值中属于非目标进制的字符进行进制转换处理,得到所述非目标进制的字符对应的数字;
组合所述非目标进制的字符对应的数字和所述加密值中目标进制的数字,得到密码。
7.根据权利要求6所述的方法,其特征在于,在根据所述用户标识加密数据组中的每个用户标识加密数据,生成密码之后,还包括:
获取预设位数的存储主密钥;所述预设位数与所述加密值的位数相同;
从所述随机数队列中选取所述预设位数的目标随机数;
通过所述存储主密钥,对由所述用户标识数据组、所述用户标识加密数据组、所述目标随机数和所述密码拼装得到的数据进行加密计算,得到所述密码的密文,作为存储密钥。
8.一种密码生成装置,其特征在于,所述装置包括:
获取模块,用于获取多个用户标识数据;
选取模块,用于针对每一个所述用户标识数据,从预先生成的随机数队列中,选取所述用户标识数据的各个数位对应的随机数值;
处理模块,用于对所述用户标识数据和所述用户标识数据的各个数位对应的随机数值进行模运算处理,得到各个所述用户标识数据对应的用户标识处理数据;
加密模块,用于对每个所述用户标识处理数据进行加密处理,得到用户标识加密数据组;
生成模块,用于根据所述用户标识加密数据组中的各个用户标识加密数据,生成密码。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111263790.9A CN113901437A (zh) | 2021-10-27 | 2021-10-27 | 密码生成方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111263790.9A CN113901437A (zh) | 2021-10-27 | 2021-10-27 | 密码生成方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113901437A true CN113901437A (zh) | 2022-01-07 |
Family
ID=79027217
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111263790.9A Pending CN113901437A (zh) | 2021-10-27 | 2021-10-27 | 密码生成方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113901437A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116363663A (zh) * | 2023-04-03 | 2023-06-30 | 北京百度网讯科技有限公司 | 图像处理方法、图像识别方法及装置 |
-
2021
- 2021-10-27 CN CN202111263790.9A patent/CN113901437A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116363663A (zh) * | 2023-04-03 | 2023-06-30 | 北京百度网讯科技有限公司 | 图像处理方法、图像识别方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110795762B (zh) | 基于流密码的保留格式加密方法 | |
TW201812638A (zh) | 區塊鏈加密射頻晶片存儲設計方法 | |
CN107078899B (zh) | 混淆数据的方法 | |
WO2019114122A1 (zh) | 登录信息的加密方法、装置、电子设备及介质 | |
CN109800585B (zh) | 一种图像插值空间完全可逆可分离密文域信息隐藏算法 | |
CN105306194B (zh) | 供加密档案和/或通讯协定的多重加密方法与*** | |
CN111404952B (zh) | 变电站数据加密传输方法、装置、计算机设备和存储介质 | |
CN105721148B (zh) | 一种基于双随机数的数据文件加密方法及*** | |
CN106603246A (zh) | 一种sm2数字签名分割生成方法及*** | |
JP2008513811A (ja) | 計算変換の方法及びシステム | |
CN113691502A (zh) | 通信方法、装置、网关服务器、客户端及存储介质 | |
CN106850229A (zh) | 基于乘积秘密分割的sm2数字签名生成方法及*** | |
CN111464296A (zh) | 序列密码生成方法、数据加密方法和数据解密方法 | |
WO2020018454A1 (en) | Cryptography operations for secure post-quantum communications | |
CN110365468B (zh) | 匿名化处理方法、装置、设备及存储介质 | |
CN113297619A (zh) | 基于可扩展精度双混沌哈希和RSA的Mysql敏感数据保护*** | |
CN107104793A (zh) | 一种数字签名生成方法及*** | |
CN113098675B (zh) | 基于多项式完全同态的二进制数据加密***及方法 | |
CN112100144A (zh) | 区块链文件共享方法、装置、存储介质及电子设备 | |
CN113901437A (zh) | 密码生成方法、装置、计算机设备和存储介质 | |
CN112328639A (zh) | 数据查询方法、装置、***以及数据集处理方法 | |
CN116132065A (zh) | 密钥确定方法、装置、计算机设备和存储介质 | |
CN115766244A (zh) | 车联网信息加密方法、装置、计算机设备和存储介质 | |
CN115170380A (zh) | 一种基于混沌映射的图像分层置乱加密方法 | |
CN114374505A (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 |