CN114896585A - 一种卡密生成方法、校验方法及其装置、设备和存储介质 - Google Patents
一种卡密生成方法、校验方法及其装置、设备和存储介质 Download PDFInfo
- Publication number
- CN114896585A CN114896585A CN202210647431.1A CN202210647431A CN114896585A CN 114896585 A CN114896585 A CN 114896585A CN 202210647431 A CN202210647431 A CN 202210647431A CN 114896585 A CN114896585 A CN 114896585A
- Authority
- CN
- China
- Prior art keywords
- bit
- character string
- check
- value
- card
- 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
-
- 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
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
本发明适用于计算机技术领域,提供了一种卡密生成方法、校验方法及其装置、设备和存储介质,卡密生成方法包括:获取36位的UUID字符串;根据36位的UUID字符串确定13位的第一字符串,第一字符串中的每个字符为34进制数;根据13位的第一字符串确定加密值和校验位;将加密值插入13位的第一字符串中的校验位,得到第二字符串,完成卡密生成。本方案通过得到第一字符串,然后根据第一字符串确定加密值和校验位,再将加密值插入到13位第一字符串的校验位,得到第二字符串从而完成一个卡密的生成,通过在第一字符串的校验位增加加密值,进而可以通过校验卡密检验位的加密值检验卡密的合法性,相比于现有技术中随机生成的字符串,有效提高卡密的安全性。
Description
技术领域
本发明属于计算机技术领域,尤其涉及一种卡密生成方法、校验方法及其装置、设备和存储介质。
背景技术
随着互联网技术的发展,互联网系统中出现了代金券、优惠劵、现金券等,其具有一定的现金价值,用户一般持有自己的卡密来对其代金券、优惠劵、现金券等进行兑换或充值。其中卡密是指一连串单独的字符串组成的一个密码组合,不同用户的卡密具有唯一性,且需要保障用户卡密的安全性。
现有技术中,通常的卡密生成方法为了保证卡密的长度足够短,往往采取生成随机字符串的方式生成,这种生成随机字符串的方式生成的卡密安全性差。
发明内容
本发明实施例的目的在于提供一种卡密生成方法,旨在解决现有卡密生成方法往往采取生成随机字符串的方式生成,这种生成随机字符串的方式生成的卡密安全性差的技术问题。
本发明实施例是这样实现的,所述卡密生成方法包括:
获取36位的UUID字符串;
根据36位的UUID字符串确定13位的第一字符串,所述第一字符串中的每个字符为34进制数;
根据所述13位的第一字符串确定加密值和校验位;
将所述加密值插入所述13位的第一字符串中的校验位,得到第二字符串,完成卡密生成。
本发明实施例的另一目的在于提供一种卡密校验方法,所述卡密校验方法,包括:
利用预设的校验位计算规则确定卡密中的第一校验加密值、第二校验加密值以及第三校验加密值,得到13位的校验字符串;
利用预设的加密值计算规则,根据所述13位的校验字符串确定第一计算加密值、第二计算加密值以及第三计算加密值;
判断所述第一校验加密值、所述第二校验加密值以及所述第三校验加密值分别与所述第一计算加密值、所述第二计算加密值以及所述第三计算加密值是否相同。
本发明实施例的另一目的在于提供一种卡密生成装置,所述卡密生成装置包括:
获取模块,用于获取36位的UUID字符串;
第一字符串确定模块,用于根据36位的UUID字符串确定13位的第一字符串,所述第一字符串中的每个字符为34进制数;
加密值和校验位确定模块,用于根据所述13位的第一字符串确定加密值和校验位;
卡密生成模块,用于将所述加密值插入所述13位的第一字符串中的校验位,得到第二字符串,完成卡密生成。
本发明实施例的另一目的在于提供一种卡密校验装置,用于校验上述卡密生成方法生成的卡密,所述卡密校验装置,包括:
校验字符串确定模块,用于利用预设的校验位计算规则确定卡密中的第一校验加密值、第二校验加密值以及第三校验加密值,得到13位的校验字符串;
加密值计算模块,用于利用预设的加密值计算规则,根据所述13位的校验字符串确定第一计算加密值、第二计算加密值以及第三计算加密值;
判断模块,用于判断所述第一校验加密值、所述第二校验加密值以及所述第三校验加密值分别与所述第一计算加密值、所述第二计算加密值以及所述第三计算加密值是否相同。
本发明实施例的另一目的在于提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行上述卡密生成方法的步骤或者上述卡密校验方法的步骤。
本发明实施例的另一目的在于提供一种计算机可读存储介质,述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行上述卡密生成方法的步骤或者上述卡密校验方法的步骤。
本发明实施例提供的一种卡密生成方法,通过根据36位的UUID字符串得到13位34进制的第一字符串,然后根据第一字符串得到加密值和校验位,再将加密值插入到13位第一字符串的校验位,得到第二字符串从而完成一个卡密的生成,通过在第一字符串的校验位增加加密值,进而可以通过校验卡密检验位的加密值检验卡密的合法性,相比于现有技术中随机生成的字符串,有效提高卡密的安全性。
附图说明
图1为本发明实施例提供的一种卡密生成方法的流程图;
图2为本发明实施例提供的一种确定13位的第一字符串的流程图;
图3为本发明实施例提供的一种确定加密值和校验位的流程图;
图4为本发明实施例提供的一种卡密校验方法的流程图;
图5为本发明实施例提供的卡密生成装置的结构框图;
图6为本发明实施例提供的卡密校验装置的结构框图;
图7为一个实施例中计算机设备的内部结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但除非特别说明,这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本申请的范围的情况下,可以将第一xx脚本称为第二xx脚本,且类似地,可将第二xx脚本称为第一xx脚本。
如图1所示,在一个实施例中,提出了一种卡密生成方法,所述卡密生成方法,具体可以包括以下步骤:
步骤S202,获取36位的UUID字符串。
在本申请实施例中,所生成卡密是指0123456789ABCDEFGHJKLMNPQRSTUVWXYZ 34个字符中的16位拼接而成字符串,具有唯一性,34个字符中包括10个数字字符和24个字母字符,24个字母字符是26个字母中排除了字母I和O得到的,有效避免字母I和O与数字1和0混淆。
在本申请实施例中,UUID(Universally Unique Identifier,通用唯一识别码)是一种软件构建的标准,本方案提供的卡密生成方法适用于UUID标准构建的软件。本实施例对获取36位的UUID字符串的方法不做限制,例如,其可以是从其他计算机设备直接获取或者是通过java系统随机生成的36位UUID。
步骤S204,根据36位的UUID字符串确定13位的第一字符串,所述第一字符串中的每个字符为34进制数。
在本申请实施例中,对根据36位的UUID字符串确定13位的第一字符串的具体方法不做限制,例如,如图2所示,步骤S204具体可以包括以下步骤:
步骤S302,利用Murmur哈希算法将所述36位的UUID字符串转换为一个long类型值,
在本申请实施例中,Murmur哈希算法一种非加密型哈希函数,特点是高运算性能,低碰撞率,分布均匀,且其能够将不同的字符串类型哈希成为不同的long类型,而且具有极低的碰撞率,从而可以有效避免卡密出现重复的问题,进而避免了在卡密生成过程中将生成的卡密与之前的卡密进行对比判断是否存在重复,如果出现重复还要进一步处理重复卡密,可见本申请通过利用Murmur哈希算法将所述36位的UUID字符串转换为一个long类型值,进而根据long类型值生成的卡密有效避免卡密重复生成,提高了卡密生成效率,减少卡密生成过程中的计算量。
在本申请实施例中,例如,36位的UUID字符串为2c4e35b6-ea2d-43d0-9261-bd4a8303d46f,利用Murmur哈希算法将其哈希成一个long类型值得到3302773408862712909。
步骤S304,根据所述long类型值得到66位的二进制数。
在本申请实施例中,将long类型值(3302773408862712909)转换为二进制数得到一个64位的二进制数,3302773408862712909=0010110111010101110011101110101010100000110111100011010001001101,本实施例对将long类型值转换为二进制数的具体方式不做限制。为了防止后面转换成的13位的卡密的前面几位出现0的情况,可以在64位的二进制数的前面补两个1,得到一个66位的二进制数,最后得到的66位的二进制数为110010110111010101110011101110101010100000110111100011010001001101。
步骤S306,将所述66位的二进制数转换为13位的34进制数,得到所述13位的第一字符串。
在本申请实施例中,对将二进制数转化为34进制数的具体方法不做限制,例如,将66位的二进制数转换为13位的34进制数得到5QCVQJHZQ3HKQ。
步骤S206,根据所述13位的第一字符串确定加密值和校验位。
在本申请实施例中,加密值和校验位用于验证卡密的合法性,可以防止被伪造破解,有效提高卡密的安全性。卡密进行校验时一般是检验卡密字符串中校验位上的字符,其中加密值即为卡密字符串校验位上的字符。本实施例对加密值和校验位的数量不做限制,加密值的数量和校验位的数量都是一致的,例如加密值至少设置3个,校验位对应至少为3个。
在本申请实施例中,对根据13位的第一字符串确定加密值和校验位的具体方法不做限制。例如,如图3所示,步骤S206具体可以包括以下步骤:
步骤S402,将所述13位的第一字符串中的每个字符转换为十进制数,得到13位的十进制数组。
在本申请实施例中,13位的第一字符串中的字符为34进制数,本实施例对将13位的第一字符串中的每个字符转换为十进制数的具体方法不做限制。以13位的第一字符串为5QCVQJHZQ3HKQ为例说明,在将13位的第一字符串中的每个字符转换为十进制数之前,可以先将13位的第一字符串分割成单独的字符串得到13个字符5、Q、C、V、Q、J、H、Z、Q、3、H、K、Q,将其中的每个字符对应转换为十进数得到13位的十进制数组[5,24,12,29,24,18,17,33,24,3,17,19,24]。
步骤S404,根据所述13位的十进制数组确定所述加密值和所述校验位。
在本申请实施例中,对根据13位的十进制数组确定加密值和校验位的具体方法不做限制,例如,可以预先设置加密值计算规则和校验位计算规则。本实施例对预先设置的加密值的计算规则和校验位的计算规则的具体计算方法限制。
在本申请实施例中,以加密值和校验位均为三位为例说明,通过预设的加密值计算规则,根据13位的十进制数组确定三个加密值的具体计算规则可以为:将13位十进制数组中每个十进制数的值减1后计算其平方和,将平方和除以34求余,并将余数转换为34进制得到第一加密值,如(42+232+112+282+232+172+162+322+232+22+162+182+232)%34=22,余数转换为34进制为N;将13位十进制数组中每个十进制数的值减1后计算其立方和,将立方和除以34求余,并将余数转换为34进制得到第二加密值,如(63+253+133+303+253+193+183+343+253+43+183+203+253)%34=10,余数转换为34进制为A;将13位十进制数组中每个十进制数求和,将和除以34求余,并将余数转换为34进制得到第三加密值,如(5+24+12+29+24+18+17+33+24+3+17+19+24)%34=11余数转换为34进制为B,从而得到3个34进制的加密值N、A、B。
在本申请实施例中,通过预设的校验位计算规则,根据所述13位的十进制数组确定三个校验位的具体计算规则可以为:将第三加密值减1的平方除以13求余,并将余数加1得到第一校验位,如(11-1)2/13=9,第一校验位为10;将所述第三加密值加1的立方除以13求余,并将余数加1得到第二校验位,如,(11+1)3%14=6,第二校验位为7;第三校验位为所述第二字符串的第X位,其中X为大于0且小于17的整数。由于当校验位和加密值的数量均为三个时,在13位的第一字符串插入三个加密值得到的卡密位16位的字符串,所以第三校验位可以在16位字符串的任意一位上。
步骤S208,将所述加密值插入所述13位的第一字符串中的校验位,得到第二字符串,完成卡密生成。
在本申请实施例中,例如,以第三校验位X为8为例说明,第一个加密值N插入到第10位得到5QCVQJHZQN3HKQ,将第二个加密值A插入到第7位得到5QCVQJAHZQN3HKQ,将第三个加密值B固定插入到第8位得到5QCVQJABHZQN3HKQ,这样就完成了一个卡密的生成。
本发明实施例提供的一种卡密生成方法,通过根据36位的UUID字符串得到13位34进制的第一字符串,然后根据第一字符串得到加密值和校验位,再将加密值插入到13位第一字符串的校验位,得到第二字符串从而完成一个卡密的生成,通过在第一字符串的校验位增加加密值,进而可以通过校验卡密检验位的加密值检验卡密的合法性,相比于现有技术中随机生成的字符串,有效提高卡密的安全性。且通过Murmur哈希算法将36位的UUID字符串转换为一个long类型值,可以有效避免卡密出现重复的问题,进而避免了在卡密生成过程中将生成的卡密与之前的卡密进行对比判断是否存在重复,提高了卡密生成效率,减少卡密生成过程中的计算量。
如图4所示,在本发明的另一实施例中,提供了一种卡密校验方法,用于校验上述实施例生成的卡密,所述卡密校验方法,具体可以包括以下步骤:
步骤S502,利用预设的校验位计算规则确定卡密中的第一校验加密值、第二校验加密值以及第三校验加密值,得到13位的校验字符串。
在本申请实施例中,卡密的校验方法当然首先要有一个卡密,以上述实施例中生成的卡密5QCVQJABHZQN3HKQ为例说明,预设的校验位计算规则即为卡密生成方法中卡密校验位的计算规则,由于第三校验为固定位,例如当预设的校验位计算规则中固定设置第8位为第三校验位,可以固定取卡密的第8位字符串,作为第三校验加密值,得到第三校验加密值B;然后确定另两个计算加密值,第一步截取的第三个加密值(B)的10进制(11)减1(11-1=10),平方(102=100),除以13求余(100%13=9),余数加1(9+1=10);第二个校验位,用上一步算出的第三个加密值(B)的10进制(11)加1(12),立方(123=1728),除以14求余(1728%14=6),余数加1(6+1=7),从而得到第一校验位10和第二校验位7,卡密中第10位和第7位对应的字符即分别为N和A。删除卡密字符串中三个校验位上对应的字符,得到13位的校验字符串。
步骤S504,利用预设的加密值计算规则,根据所述13位的校验字符串确定第一计算加密值、第二计算加密值以及第三计算加密值。
在本申请实施例中,预设的校验位计算规则即为卡密生成方法中加密值的计算规则。删除3个校验位的字符串后,将剩余的13位卡密(5QCVQJHZQ3HKQ)分割成单独的字符串[5,Q,C,V,Q,J,H,Z,Q,3,H,K,Q],再将单个字符串转换10进制数数组[5,24,12,29,24,18,17,33,24,3,17,19,24],将数组10进制的值减1平方求和,除以34求余即(42+232+112+282+232+172+162+322+232+22+162+182+232)%34=22,再将余数转换为34进制得到第一计算加密值为N;数组10进制的值加1立方求和,除以34求余即(63+253+133+303+253+193+183+343+253+43+183+203+253)%34=10,再将余数转换为34进制得到第二计算加密值A;将数组10进制的值求和,除以34求余,(5+24+12+29+24+18+17+33+24+3+17+19+24)%34=11,再将余数转换为34进制得到第三计算加密值B。
步骤S506,判断所述第一校验加密值、所述第二校验加密值以及所述第三校验加密值分别与所述第一计算加密值、所述第二计算加密值以及所述第三计算加密值是否相同。
在本发明实施例中,将步骤S504中的加密值与步骤S502中的加密值进行对比,当其相同,即校验成功者,否则校验失败。
如图5所示,在一个实施例中,提供了一种卡密生成装置,该卡密生成装置可以集成于计算机设备中,具体可以包括获取模块610、第一字符串确定模块620、加密值和校验位确定模块630、卡密生成模块640。
获取模块610,用于获取36位的UUID字符串;
第一字符串确定模块620,用于根据36位的UUID字符串确定13位的第一字符串,所述第一字符串中的每个字符为34进制数;
加密值和校验位确定模块630,用于根据所述13位的第一字符串确定加密值和校验位;
卡密生成模块640,用于将所述加密值插入所述13位的第一字符串中的校验位,得到第二字符串,完成卡密生成。
本申请实施例提供的一种卡密生成装置,所包含的获取模块610、第一字符串确定模块620、加密值和校验位确定模块630、卡密生成模块640的功能实现与上文的卡密生成方法中的步骤S202、步骤S204、步骤S206以及步骤S208一一对应,对于该卡密生成装置中的具体解释,以及相关的细化、优化的内容参见上文卡密生成方法中的具体实施例,此处不再赘述。
如图6所示,在一个实施例中,提供了一种卡密校验装置,该卡密生成装置也可以集成于计算机设备中,具体可以包括校验字符串确定模块710、加密值计算模块720以及判断模块730。
校验字符串确定模块710,用于利用预设的校验位计算规则确定卡密中的第一校验加密值、第二校验加密值以及第三校验加密值,得到13位的校验字符串;
加密值计算模块720,用于利用预设的加密值计算规则,根据所述13位的校验字符串确定第一计算加密值、第二计算加密值以及第三计算加密值;
判断模块730,用于判断所述第一校验加密值、所述第二校验加密值以及所述第三校验加密值分别与所述第一计算加密值、所述第二计算加密值以及所述第三计算加密值是否相同。
本申请实施例提供的一种卡密校验装置,所包含的校验字符串确定模块710、加密值计算模块720以及判断模块730的功能实现与上文的卡密校验方法中的步骤S502、步骤S504、步骤S506以及步骤S508一一对应,对于该卡密校验装置中的具体解释,以及相关的细化、优化的内容参见上文卡密校验方法中的具体实施例,此处不再赘述。
图7示出了一个实施例中计算机设备的内部结构图。该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现卡密生成方法或卡密校验方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行卡密生成方法或卡密校验方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本申请提供的卡密生成装置可以实现为一种计算机程序的形式,计算机程序可在如图7所示的计算机设备上运行。计算机设备的存储器中可存储组成该卡密生成装置的各个程序模块,比如,图5所示的获取模块610、第一字符串确定模块620、加密值和校验位确定模块630、卡密生成模块640。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的卡密生成方法中的步骤。
例如,图7所示的计算机设备可以通过如图5所示的卡密生成装置中的
获取模块610执行步骤S202。计算机设备可通过第一字符串确定模块620执行步骤S204。计算机设备可通过加密值和校验位确定模块630执行步骤S206。计算机设备可通过卡密生成模块640执行步骤S208。
在一个实施例中,本申请提供的卡密校验装置可以实现为一种计算机程序的形式,计算机程序可在如图7所示的计算机设备上运行。计算机设备的存储器中可存储组成该卡密生成装置的各个程序模块,比如,图6所示的校验字符串确定模块710、加密值计算模块720以及判断模块730。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的卡密生成方法中的步骤。
例如,图7所示的计算机设备可以通过如图6所示的卡密校验装置中的
校验字符串确定模块710执行步骤S502。计算机设备可通过加密值计算模块720执行步骤S504。计算机设备可通过判断模块730执行步骤S506。
在一个实施例中,提出了一种计算机设备,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
步骤S202,获取36位的UUID字符串;
步骤S204,根据36位的UUID字符串确定13位的第一字符串,所述第一字符串中的每个字符为34进制数;
步骤S206,根据所述13位的第一字符串确定加密值和校验位;
步骤S208,将所述加密值插入所述13位的第一字符串中的校验位,得到第二字符串,完成卡密生成。
或者所述处理器执行所述计算机程序时实现以下步骤:
步骤502,利用预设的校验位计算规则确定卡密中的第一校验加密值、第二校验加密值以及第三校验加密值,得到13位的校验字符串;
步骤504,利用预设的加密值计算规则,根据所述13位的校验字符串确定第一计算加密值、第二计算加密值以及第三计算加密值;
步骤506,判断所述第一校验加密值、所述第二校验加密值以及所述第三校验加密值分别与所述第一计算加密值、所述第二计算加密值以及所述第三计算加密值是否相同。
在一个实施例中,提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时,使得处理器执行以下步骤:
步骤S202,获取36位的UUID字符串;
步骤S204,根据36位的UUID字符串确定13位的第一字符串,所述第一字符串中的每个字符为34进制数;
步骤S206,根据所述13位的第一字符串确定加密值和校验位;
步骤S208,将所述加密值插入所述13位的第一字符串中的校验位,得到第二字符串,完成卡密生成。
或者所述处理器执行所述计算机程序时实现以下步骤:
步骤502,利用预设的校验位计算规则确定卡密中的第一校验加密值、第二校验加密值以及第三校验加密值,得到13位的校验字符串;
步骤504,利用预设的加密值计算规则,根据所述13位的校验字符串确定第一计算加密值、第二计算加密值以及第三计算加密值;
步骤506,判断所述第一校验加密值、所述第二校验加密值以及所述第三校验加密值分别与所述第一计算加密值、所述第二计算加密值以及所述第三计算加密值是否相同。
应该理解的是,虽然本发明各实施例的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,各实施例中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种卡密生成方法,其特征在于,所述卡密生成方法包括:
获取36位的UUID字符串;
根据36位的UUID字符串确定13位的第一字符串,所述第一字符串中的每个字符为34进制数;
根据所述13位的第一字符串确定加密值和校验位;
将所述加密值插入所述13位的第一字符串中的校验位,得到第二字符串,完成卡密生成。
2.根据权利要求1所述的一种卡密生成方法,其特征在于,所述根据36位的UUID字符串确定13位的第一字符串,包括:
利用Murmur哈希算法将所述36位的UUID字符串转换为一个long类型值;
根据所述long类型值得到66位的二进制数;
将所述66位的二进制数转换为13位的34进制数,得到所述13位的第一字符串。
3.根据权利要求1所述的一种卡密生成方法,其特征在于,所述根据所述13位的第一字符串确定加密值和校验位,包括:
将所述13位的第一字符串中的每个字符转换为十进制数,得到13位的十进制数组;
根据所述13位的十进制数组确定所述加密值和所述校验位。
4.根据权利要求3所述的一种卡密生成方法,其特征在于,所述加密值至少为三个,通过预设的加密值计算规则,根据所述13位的十进制数组确定三个加密值,包括:
将13位十进制数组中每个十进制数的值减1后计算其平方和,将平方和除以34求余,并将余数转换为34进制得到第一加密值;
将13位十进制数组中每个十进制数的值减1后计算其立方和,将立方和除以34求余,并将余数转换为34进制得到第二加密值;
将13位十进制数组中每个十进制数求和,将和除以34求余,并将余数转换为34进制得到第三加密值。
5.根据权利要求4所述的一种卡密生成方法,其特征在于,所述校验位的数量与所述加密值的数量对应,通过预设的校验位计算规则,根据所述13位的十进制数组确定三个校验位,包括:
将所述第三加密值减1的平方除以13求余,并将余数加1得到第一校验位;
将所述第三加密值加1的立方除以13求余,并将余数加1得到第二校验位;
第三校验位为所述第二字符串的第X位,其中X为大于0且小于17的整数。
6.一种卡密校验方法,用于校验权利要求5生成的卡密,其特征在于,所述卡密校验方法,包括:
利用预设的校验位计算规则确定卡密中的第一校验加密值、第二校验加密值以及第三校验加密值,得到13位的校验字符串;
利用预设的加密值计算规则,根据所述13位的校验字符串确定第一计算加密值、第二计算加密值以及第三计算加密值;
判断所述第一校验加密值、所述第二校验加密值以及所述第三校验加密值分别与所述第一计算加密值、所述第二计算加密值以及所述第三计算加密值是否相同。
7.一种卡密生成装置,其特征在于,所述卡密生成装置包括:
获取模块,用于获取36位的UUID字符串;
第一字符串确定模块,用于根据36位的UUID字符串确定13位的第一字符串,所述第一字符串中的每个字符为34进制数;
加密值和校验位确定模块,用于根据所述13位的第一字符串确定加密值和校验位;
卡密生成模块,用于将所述加密值插入所述13位的第一字符串中的校验位,得到第二字符串,完成卡密生成。
8.一种卡密校验装置,用于校验权利要求5生成的卡密,其特征在于,所述卡密校验装置,包括:
校验字符串确定模块,用于利用预设的校验位计算规则确定卡密中的第一校验加密值、第二校验加密值以及第三校验加密值,得到13位的校验字符串;
加密值计算模块,用于利用预设的加密值计算规则,根据所述13位的校验字符串确定第一计算加密值、第二计算加密值以及第三计算加密值;
判断模块,用于判断所述第一校验加密值、所述第二校验加密值以及所述第三校验加密值分别与所述第一计算加密值、所述第二计算加密值以及所述第三计算加密值是否相同。
9.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行权利要求1至5中任一项权利要求所述卡密生成方法的步骤或者权利要求6中卡密校验方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行权利要求1至5中任一项权利要求所述卡密生成方法的步骤或者权利要求6中卡密校验方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210647431.1A CN114896585A (zh) | 2022-06-08 | 2022-06-08 | 一种卡密生成方法、校验方法及其装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210647431.1A CN114896585A (zh) | 2022-06-08 | 2022-06-08 | 一种卡密生成方法、校验方法及其装置、设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114896585A true CN114896585A (zh) | 2022-08-12 |
Family
ID=82727482
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210647431.1A Pending CN114896585A (zh) | 2022-06-08 | 2022-06-08 | 一种卡密生成方法、校验方法及其装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114896585A (zh) |
-
2022
- 2022-06-08 CN CN202210647431.1A patent/CN114896585A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111628868B (zh) | 数字签名生成方法、装置、计算机设备和存储介质 | |
KR100340936B1 (ko) | 상호인증방법 | |
US8208627B2 (en) | Format-preserving cryptographic systems | |
CN110710155A (zh) | 渐进式密钥加密算法 | |
US20170149565A9 (en) | Format-preserving cryptographic systems | |
CN111475824A (zh) | 数据访问方法、装置、设备和存储介质 | |
US11227037B2 (en) | Computer system, verification method of confidential information, and computer | |
CN108304698B (zh) | 产品授权使用方法、装置、计算机设备和存储介质 | |
US10885516B2 (en) | Secure validation using hardware security modules | |
CN111460525B (zh) | 一种基于区块链的数据处理方法、装置及存储介质 | |
US20100241865A1 (en) | One-Time Password System Capable of Defending Against Phishing Attacks | |
CN101971182A (zh) | 颁发证书的手指感测设备及相关方法 | |
CN114513311B (zh) | 一种改进消息认证码算法的方法、装置、设备和介质 | |
CN115514492A (zh) | Bios固件验证方法、装置、服务器、存储介质和程序产品 | |
CN114499859A (zh) | 密码验证方法、装置、设备及存储介质 | |
CN116680673B (zh) | 显示器的身份校验方法、装置以及计算机设备 | |
JP2003528515A (ja) | 不正行為に対する保護のための暗号通信方法 | |
CN111814139A (zh) | 汽车电机控制器程序安全加载系统及方法 | |
CN111475690A (zh) | 字符串的匹配方法和装置、数据检测方法、服务器 | |
CN114896585A (zh) | 一种卡密生成方法、校验方法及其装置、设备和存储介质 | |
CN110401535B (zh) | 数字证书生成、安全通信、身份认证方法及装置 | |
CN114239004A (zh) | 电子签章生成方法、装置、计算机设备和存储介质 | |
CN118233095B (zh) | 一种敏感信息保护方法及系统 | |
CN112749402B (zh) | 电子数据的处理方法、装置、电子设备及存储介质 | |
US11568070B2 (en) | Secure access control processes |
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 |