CN116629859A - 数字钱包生成和数字钱包使用方法、电子设备以及存储介质 - Google Patents
数字钱包生成和数字钱包使用方法、电子设备以及存储介质 Download PDFInfo
- Publication number
- CN116629859A CN116629859A CN202310123559.2A CN202310123559A CN116629859A CN 116629859 A CN116629859 A CN 116629859A CN 202310123559 A CN202310123559 A CN 202310123559A CN 116629859 A CN116629859 A CN 116629859A
- Authority
- CN
- China
- Prior art keywords
- wallet
- private key
- main
- user
- 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
- 238000000034 method Methods 0.000 title claims abstract description 54
- 230000004044 response Effects 0.000 claims abstract description 16
- 150000003839 salts Chemical class 0.000 claims description 36
- 230000001343 mnemonic effect Effects 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 7
- 230000002427 irreversible effect Effects 0.000 claims description 5
- 238000012795 verification Methods 0.000 claims 3
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 238000000605 extraction Methods 0.000 description 3
- 238000010295 mobile communication Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000005336 cracking Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001172 regenerating effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/36—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
- G06Q20/367—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/04—Payment circuits
- G06Q20/06—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
- G06Q20/065—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Engineering & Computer Science (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明公开数字钱包生成和数字钱包使用方法、电子设备以及存储介质,其中,一种数字钱包生成方法,包括:响应于用户的数字钱包生成指令,通过密码学安全的随机算法生成随机种子,基于所述随机种子生成主钱包私钥;获取所述用户输入的主钱包密码,利用所述主钱包密码作为参数,将所述主钱包私钥加密并写入存储;响应于所述用户的钱包组创建指令,获取所述用户输入的主钱包密码,基于所述主钱包密码解析出主钱包私钥,获取所述用户输入的钱包组名称以创建相应的钱包组;响应于所述用户在所述钱包组中添加副钱包,获取所述用户输入的副钱包私钥,至少在存储中写入加密后的副钱包私钥。
Description
技术领域
本申请实施例涉及语音识别技术领域,特别是涉及一种数字钱包生成和数字钱包使用方法、电子设备以及存储介质。
背景技术
数字钱包也被称为“电子钱包”是指电子设备、在线服务或软件程序,它允许一方使电子交易与另一方易货数字货币为单位的商品和服务。这可能包括使用计算机在线购买商品或使用智能手机在商店购买商品。可以在进行任何交易之前将钱存入数字钱包,或者在其他情况下,可以将个人的银行帐户链接到数字钱包。
现在,数字钱包被广泛的使用,用户不可避免的用到多个钱包地址,有些钱包地址用于企业转账,有些钱包地址用于个人转账,有些钱包用于接收退款等。用户有时需要将多个钱包的资金,分别转不同金额到某个地址,如果每次都需要输入各个钱包的密码,然后输入金额才能转账,会降低钱包的用户体验。
发明内容
本发明实施例提供了一种数字钱包生成和数字钱包使用方法、电子设备以及存储介质,用于至少解决上述技术问题之一。
第一方面,本发明实施例提供了一种数字钱包生成方法,包括:响应于用户的数字钱包生成指令,通过密码学安全的随机算法生成随机种子,基于所述随机种子生成主钱包私钥;获取所述用户输入的主钱包密码,利用所述主钱包密码作为参数,将所述主钱包私钥加密并写入存储;响应于所述用户的钱包组创建指令,获取所述用户输入的主钱包密码,基于所述主钱包密码解析出主钱包私钥,获取所述用户输入的钱包组名称以创建相应的钱包组;响应于所述用户在所述钱包组中添加副钱包,获取所述用户输入的副钱包私钥,至少在存储中写入加密后的副钱包私钥。
第二方面,本发明实施例提供了一种数字钱包使用方法,包括:响应于用户选中所述主钱包和至少一个所述副钱包,读取所述主钱包地址和至少一个所述副钱包地址;获取用户输入的主钱包密码,基于所述主钱包密码读取加密后的主钱包私钥以及至少一个加密后的副钱包私钥,解密出主钱包私钥和至少一个副钱包私钥;获取用户输入的待转账资金以及接收资金的地址,基于所述待转账资金和所述接收资金的地址生成交易,使用所述主钱包私钥和所述至少一个副钱包私钥签名交易并发送至区块链。
第三方面,本发明实施例提供一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明上述任一项信息提取方法。
第四方面,本发明实施例提供一种存储介质,所述存储介质中存储有一个或多个包括执行指令的程序,所述执行指令能够被电子设备(包括但不限于计算机,服务器,或者网络设备等)读取并执行,以用于执行本发明上述任一项信息提取方法。
第五方面,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述任一项信息提取方法。
本申请的方法通过密码学安全的随机算法生成一个主钱包,然后输入主钱包的密码,将生成的随机盐和加密后的主钱包私钥,使用AES解密算法,将主钱包私钥读出并经由用户输入钱包组名称,之后,输入主钱包密码,然后通过主钱包密码和生成的随机盐来解密出主钱包的私钥,并基于主钱包的私钥生成的地址,校验地址是否跟存储当中的一致,若一致时,获取用户输入的副钱包私钥或者助记词,根据副钱包私钥生成副钱包地址,最后使用主钱包密码对副钱包私钥进行加密并写入存储。从而可以实现使用钱包组的方式来管理钱包,进一步地提升用户的使用体验。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的一种数字钱包生成方法的流程图;
图2为本发明一实施例提供的另一种数字钱包生成方法的流程图;
图3为本发明一实施例提供的又一种数字钱包生成方法的流程图;
图4为本发明一实施例提供的一种数字钱包使用方法的流程图;
图5为本发明一实施例提供的数字钱包生成和数字钱包使用方法的一个具体示例的钱包组结构图;
图6为本发明一实施例提供的数字钱包生成和数字钱包使用方法的一个具体示例的钱包组数据存储结构图;
图7为本发明一实施例提供的数字钱包生成和数字钱包使用方法的一个具体示例的钱包组转账流程图;
图8是本发明一实施例提供的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,其示出了本发明一实施例提供的一种数字钱包生成方法的流程图。
如图1所示,在步骤101中,响应于用户的数字钱包生成指令,通过密码学安全的随机算法生成随机种子,基于所述随机种子生成主钱包私钥;
在步骤102中,获取所述用户输入的主钱包密码,利用所述主钱包密码作为参数,将所述主钱包私钥加密并写入存储;
在步骤103中,响应于所述用户的钱包组创建指令,获取所述用户输入的主钱包密码,基于所述主钱包密码解析出主钱包私钥,获取所述用户输入的钱包组名称以创建相应的钱包组;
在步骤104中,响应于所述用户在所述钱包组中添加副钱包,获取所述用户输入的副钱包私钥,至少在存储中写入加密后的副钱包私钥。
在本实施例中,对于步骤101,数字钱包生成装置响应于用户的数字钱包生成指令,通过密码学安全的随机算法生成随机种子,基于所述随机种子生成主钱包私钥,例如,使用不可逆的哈希算法HMAC-SHA512生成512位的哈希串,左256位是主私钥,右256位是主链码,然后通过主私钥结合推导公钥的椭圆曲线算法能推导出与之对应的264位主公钥,其中,哈希算法是一个密码散列函数家族,是FIPS所认证的安全散列算法。能计算出一个数字消息所对应到的,长度固定的字符串的算法。且若输入的消息不同,它们对应到不同字符串的机率很高。
然后,对于步骤102,数字钱包生成装置获取用户输入的主钱包密码,利用主钱包密码作为参数,将主钱包私钥加密并写入存储,例如,使用AES加密算法,用生成的随机盐和用户输入的主钱包密码作为参数,将私钥加密并和随机盐一起写入存储,其中,AES加密算法全称Advanced Encryption Standard,又称Rijndael加密法,是一种区块加密标准,这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用;AES在本申请当中用来加密最终写入文件内容的对称加密算法,本申请默认使用AES进行对称加密,但是在具体实施过程当中可以采用其他对称加密算法。其中,随机盐是一种秘钥延伸的实现,在具体实施当中可以根据不同的实现语言采用不同的秘钥延伸算法,使用随机盐可以增强弱密钥的安全性,增加暴力破解的难度。
之后,对于步骤103,数字钱包生成装置响应于获取到用户的钱包组创建指令,获取用户输入的主钱包密码,基于主钱包密码解析出主钱包私钥,获取用户输入的钱包组名称以创建相应的钱包组,例如,将生成的随机盐和加密后的主钱包私钥,使用AES解密算法,将主钱包私钥读出,之后获取用户输入的钱包组名称以创建相应的钱包组。
最后,对于步骤104,数字钱包生成装置响应于用户在钱包组中添加副钱包,获取用户输入的副钱包私钥,至少在存储中写入加密后的副钱包私钥,例如,用户可以输入副钱包的助记词或者私钥,如果输入的是助记词则还需要通过助记词来推导出副钱包的私钥,然后根据私钥生成副钱包地址,之后对副钱包的私钥进行加密并与副钱包写入存储。在某些具体示例中,钱包的生成可以完全在本地完成,无需依赖服务器。
本实施例的方法通过生成钱包组的方式进行钱包管理,从而可以实现只需要输入一次密码就可以将不同钱包的资金分别进行转账,能够极大的提升用户的体验。
进一步请参考图2,其示出了本发明一实施例提供的另一种数字钱包生成和数字钱包使用方法,该流程图主要是对流程图中的图1“存储中还包括根据所述主钱包私钥生成的主钱包地址,响应于所述用户在所述钱包组中添加副钱包,获取所述用户输入的副钱包私钥,至少在存储中写入加密后的副钱包私钥”的流程进一步限定的步骤的流程图。
如图2所示,在步骤201中,获取所述用户输入的主钱包密码,通过所述主钱包密码解析出主钱包私钥;
在步骤202中,基于所述主钱包私钥生成主钱包地址,校验所述主钱包地址是否与存储的主钱包地址一致;
在步骤203中,若地址不一致,则拒绝添加;
在步骤204中,若地址一致,获取所述用户输入的副钱包私钥或者助记词,根据所述副钱包私钥生成副钱包地址,其中,基于所述助记词能够推导出所述副钱包私钥;
在步骤205中,使用所述主钱包密码对所述副钱包私钥进行加密;
在步骤206中,将所述副钱包地址和加密后的副钱包私钥写入存储。
在本实施例中,对于步骤201,数字钱包生成装置获取用户输入的主钱包密码,通过主钱包密码解析出主钱包私钥,例如,获取到用户输入的主钱包密码,然后通过主钱包密码和生成的随机盐来解密出主钱包的私钥。
对于步骤202,数字钱包生成装置基于主钱包私钥生成主钱包地址,校验主钱包地址是否与存储的主钱包地址一致,在一具体实施例中,钱包地址是通过随机选出256位二进制数字,形成私钥,然后通过加密函数来生成地址,这个生成方向是单向的,一般来说是无法通过解密方法来计算出私钥的。
对于步骤203,若地址不一致,则拒绝添加;
对于步骤204,若地址一致,获取用户输入的副钱包私钥或者助记词,根据副钱包私钥生成副钱包地址,其中,基于助记词能够推导出副钱包私钥,例如,助记词能够用来恢复根密钥的12个字母,通过助记词可以还原找到生成根密钥的随机种子,从而恢复主钱包公钥和主钱包私钥。
对于步骤205,数字钱包生成装置使用主钱包密码对副钱包私钥进行加密,例如,先生成随机盐,然后使用主钱包密码和盐将副钱包的私钥使用AES加密。
对于步骤206,数字钱包生成装置将副钱包地址和加密后的副钱包私钥写入存储,在一集体实施中,每次刷新钱包内容都会重新随机生成盐和初始向量,同时根据密码和盐重新生成私钥,最后用AES加密相关的字段。
本实施例的方法通过基主钱包私钥生成主钱包地址,校验主钱包地址是否与存储的主钱包地址一致,若地址一致,获取用户输入的副钱包私钥或者助记词,根据副钱包私钥生成副钱包地址,从而可以实现用钱包组的方式管理钱包。
在一些可选的实施例中,所述获取所述用户输入的主钱包密码,利用所述主钱包密码作为参数,将所述主钱包私钥加密并写入存储包括:
数字钱包生成装置生成主钱包随机盐,其中,盐是一种key stretching(秘钥延伸)的实现,在具体实施当中可以根据不同的实现语言采用不同的key stretching算法。
数字钱包生成装置获取用户输入的主钱包密码,利用主钱包随机盐和主钱包密码作为参数,将主钱包私钥加密并与主钱包随机盐一起写入存储;
使用所述主钱包密码对所述副钱包私钥进行加密包括:
数字钱包生成装置生成副钱包随机盐;
数字钱包生成装置使用主钱包密码和所述副钱包随机盐对副钱包私钥进行加密。
本实施例的方法通过在主钱包和副钱包中均增加随机盐,可以增强密钥的安全性,增加暴力破解的难度。
在一些可选的实施例中,在将所述主钱包地址、所述副钱包随机盐、副钱包地址和加密后的副钱包私钥写入存储之后,所述方法还包括:
数字钱包生成装置对所有钱包的存储内容进行校验,校验成功后生成相应的校验码并更新至存储中,其中,效验码写在钱包组的存储内容的开头,先读取校验码再读取剩余部分以校验文件是否被篡改过。
本实施例的方法通过增加校验码用以校验文件的完整性和正确性。
在一些可选的实施例中,所有钱包组的存储内容还包括副钱包的个数、每个钱包的账号索引,例如,可以通过账号索引字段可以从主钱包公钥和主钱包私钥推导出指定位置的副钱包公钥和副钱包私钥。
进一步请参考图3,其示出了本发明一实施例提供的另一种数字钱包生成和数字钱包使用方法,该流程图主要是对流程图1“基于所述随机种子生成主钱包私钥”的流程进一步限定的步骤的流程图。
如图3所示,在步骤301中,基于所述随机种子通过不可逆哈希算法生成512位的哈希串,其中,所述哈希串的左256为主钱包私钥,所述哈希串的右256位为主钱包链码;
在步骤302中,通过所述主钱包私钥和主钱包链码推导出主钱包公钥。
在本实施例中,对于步骤301,数字钱包生成装置基于随机种子通过不可逆哈希算法生成512位的哈希串,其中,哈希串的左256为主钱包公钥,哈希串的右256位为主钱包链码,在一具体实施例中,每次刷新钱包内容都会重新随机生成盐和初始向量,同时根据密码和盐重新生成私钥,最后用AES加密相关的字段。
然后,对于步骤302,数字钱包生成装置通过主钱包私钥和主钱包链码推导出主钱包公钥,例如,通过主钱包私钥结合推导公钥的椭圆曲线算法能推导出与之对应的主钱包公钥。
本实施例的方法通过基于随机种子通过不可逆哈希算法生成512位的哈希串,然后通过主钱包私钥和主钱包链码推导出主钱包公钥,从而可以实现生成主钱包。
进一步请参考图4,其示出了本发明一实施例提供的一种数字钱包使用方法。
如图4所示,在步骤401中,响应于用户选中所述主钱包和至少一个所述副钱包,读取所述主钱包地址和至少一个所述副钱包地址;
在步骤402中,获取用户输入的主钱包密码,基于所述主钱包密码读取加密后的主钱包私钥以及至少一个加密后的副钱包私钥,解密出主钱包私钥和至少一个副钱包私钥;
在步骤403中,获取用户输入的待转账资金以及接收资金的地址,基于所述待转账资金和所述接收资金的地址生成交易,使用所述主钱包私钥和所述至少一个副钱包私钥签名交易并发送至区块链。
在本实施例中,对于步骤401,数字钱包使用装置响应于用户选中主钱包和至少一个副钱包,读取主钱包地址和至少一个副钱包地址,其中,一个私钥对应一个账户,可以认为账户其实就是一个私钥,而地址是由私钥推导出来的,一个私钥只能推导出一个地址,地址用于接收金额和其他信息。
然后,对于步骤402,数字钱包使用装置获取用户输入的主钱包密码,基于主钱包密码读取存储的加密后的主钱包私钥以及至少一个加密后的副钱包私钥,解密出主钱包私钥和至少一个副钱包私钥,在一具体实施中,当钱包被初始化为ND Wallet时该字段不需要保存;当钱包被初始化为HD Wallet时该字段表示从根密钥遍历树到子密钥的索引,通过该字段可以从根密钥推导出指定位置的子密钥。
最后,对于步骤403,数字钱包使用装置获取用户输入的待转账资金以及接收资金的地址,基于待转账资金和接收资金的地址生成交易,使用主钱包私钥和至少一个副钱包私钥签名交易并发送至区块链,例如,当用户需要管理多个钱包,并且从不同的钱包当中转不同的金额到同一个地址时,使用钱包组的方式来管理钱包,只需要输入一次密码就可以将不同钱包的资金分别进行转账。
本实施例的方法通过使用钱包组的方式来管理钱包,从而可以实现操作方便安全,输入密码次数少。
在一些可选的实施例中,所述获取用户输入的主钱包密码,基于所述主钱包密码读取加密后的主钱包私钥以及至少一个加密后的副钱包私钥,解密出主钱包私钥和至少一个副钱包私钥包括:
数字钱包使用装置获取用户输入的主钱包密码,基于主钱包密码读取主钱包随机盐和加密后的主钱包私钥以及至少一个副钱包随机盐和至少一个加密后的副钱包私钥,解密出主钱包私钥和至少一个副钱包私钥。
请参考图5,其示出了本发明一实施例提供的数字钱包生成和数字钱包使用方法的一个具体示例的钱包组结构图。
如图5所示,主地址是用于创建钱包组和初始化存储的钱包,副地址是跟随主钱包和主钱包使用同一个密码的钱包。
请参考图6,其示出了本发明一实施例提供的数字钱包生成和数字钱包使用方法的一个具体示例的钱包组数据存储结构图。
如图6所示,输入主钱包的密码,将salt0和加密后的主钱包私钥,使用AES解密算法,将主钱包私钥读出,用户输入钱包组名称GROUP ID,然后在存储里面写入如下几个参数:
Count:钱包的个数,初始值为0,每次添加副钱包则Count+1;
Index:主钱包的index为0;
Salt:Salt直接使用之前生成的salt0;
AES加密后的主钱包私钥:使用主钱包的密码和salt0加密后的私钥;
根据主钱包私钥生成的地址:主钱包地址;
GROUP ID:户输入的钱包组名称;
MD5:对上述元素组合后做MD5算出来的校验码,防止钱包文件损坏后无法校验。
请参考图7,其示出了本发明一实施例提供的数字钱包生成和数字钱包使用方法的一个具体示例的钱包组转账流程图。
如图7所示,步骤1:选中钱包,然后将每个钱包的index读取出来,然后输入主钱包密码;
步骤2:通过主钱包密码读出存储当中被选中钱包的salt,以及被加密后的私钥;
步骤3:通过AES解密算法,用主钱包密码和每个钱包的salt解密出私钥;
步骤4:输入要转账的资金,以及接收资金的地址;
步骤5:根据资金,接收地址生成交易,然后用步骤③读取出来的私钥签名交易并发送到区块链。
在另一些实施例中,本发明实施例还提供了一种非易失性计算机存储介质,计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的数字钱包生成和数字钱包使用方法;
作为一种实施方式,本发明的非易失性计算机存储介质存储有计算机可执行指令,计算机可执行指令设置为:
响应于用户的数字钱包生成指令,通过密码学安全的随机算法生成随机种子,基于所述随机种子生成主钱包私钥;
获取所述用户输入的主钱包密码,利用所述主钱包密码作为参数,将所述主钱包私钥加密并写入存储;
响应于所述用户的钱包组创建指令,获取所述用户输入的主钱包密码,基于所述主钱包密码解析出主钱包私钥,获取所述用户输入的钱包组名称以创建相应的钱包组;
响应于所述用户在所述钱包组中添加副钱包,获取所述用户输入的副钱包私钥,至少在存储中写入加密后的副钱包私钥。
作为另一种实施方式,本发明的非易失性计算机存储介质存储有计算机可执行指令,计算机可执行指令设置为:
响应于用户选中所述主钱包和至少一个所述副钱包,读取所述主钱包地址和至少一个所述副钱包地址;
获取用户输入的主钱包密码,基于所述主钱包密码读取加密后的主钱包私钥以及至少一个加密后的副钱包私钥,解密出主钱包私钥和至少一个副钱包私钥;
获取用户输入的待转账资金以及接收资金的地址,基于所述待转账资金和所述接收资金的地址生成交易,使用所述主钱包私钥和所述至少一个副钱包私钥签名交易并发送至区块链。
非易失性计算机可读存储介质可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据数字钱包生成和数字钱包使用装置的使用所创建的数据等。此外,非易失性计算机可读存储介质可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,非易失性计算机可读存储介质可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至数字钱包生成和数字钱包使用装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本发明实施例还提供一种计算机程序产品,计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被计算机执行时,使计算机执行上述任一项数字钱包生成和数字钱包使用方法。
图8是本发明实施例提供的电子设备的结构示意图,如图8所示,该设备包括:一个或多个处理器810以及存储器820,图8中以一个处理器810为例。数字钱包生成和数字钱包使用方法的设备还可以包括:输入装置830和输出装置840。处理器810、存储器820、输入装置830和输出装置840可以通过总线或者其他方式连接,图8中以通过总线连接为例。存储器820为上述的非易失性计算机可读存储介质。处理器810通过运行存储在存储器820中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例数字钱包生成和数字钱包使用方法。输入装置830可接收输入的数字或字符信息,以及产生与数字钱包生成和数字钱包使用装置的用户设置以及功能控制有关的键信号输入。输出装置840可包括显示屏等显示设备。
上述产品可执行本发明实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明实施例所提供的方法。
作为一种实施方式,上述电子设备应用于数字钱包生成装置中,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够:
响应于用户的数字钱包生成指令,通过密码学安全的随机算法生成随机种子,基于所述随机种子生成主钱包私钥;
获取所述用户输入的主钱包密码,利用所述主钱包密码作为参数,将所述主钱包私钥加密并写入存储;
响应于所述用户的钱包组创建指令,获取所述用户输入的主钱包密码,基于所述主钱包密码解析出主钱包私钥,获取所述用户输入的钱包组名称以创建相应的钱包组;
响应于所述用户在所述钱包组中添加副钱包,获取所述用户输入的副钱包私钥,至少在存储中写入加密后的副钱包私钥。
作为另一种实施方式,上述电子设备应用于数字钱包使用装置中,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够:
响应于用户选中所述主钱包和至少一个所述副钱包,读取所述主钱包地址和至少一个所述副钱包地址;
获取用户输入的主钱包密码,基于所述主钱包密码读取加密后的主钱包私钥以及至少一个加密后的副钱包私钥,解密出主钱包私钥和至少一个副钱包私钥;
获取用户输入的待转账资金以及接收资金的地址,基于所述待转账资金和所述接收资金的地址生成交易,使用所述主钱包私钥和所述至少一个副钱包私钥签名交易并发送至区块链。
本申请实施例的电子设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(5)其他具有数据交互功能的电子装置。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种数字钱包生成方法,包括:
响应于用户的数字钱包生成指令,通过密码学安全的随机算法生成随机种子,基于所述随机种子生成主钱包私钥;
获取所述用户输入的主钱包密码,利用所述主钱包密码作为参数,将所述主钱包私钥加密并写入存储;
响应于所述用户的钱包组创建指令,获取所述用户输入的主钱包密码,基于所述主钱包密码解析出主钱包私钥,获取所述用户输入的钱包组名称以创建相应的钱包组;
响应于所述用户在所述钱包组中添加副钱包,获取所述用户输入的副钱包私钥,至少在存储中写入加密后的副钱包私钥。
2.根据权利要求1所述的方法,其中,所述存储中还包括根据所述主钱包私钥生成的主钱包地址,响应于所述用户在所述钱包组中添加副钱包,获取所述用户输入的副钱包私钥,至少在存储中写入加密后的副钱包私钥包括:
获取所述用户输入的主钱包密码,通过所述主钱包密码解析出主钱包私钥;
基于所述主钱包私钥生成主钱包地址,校验所述主钱包地址是否与存储的主钱包地址一致;
若地址不一致,则拒绝添加;
若地址一致,获取所述用户输入的副钱包私钥或者助记词,根据所述副钱包私钥生成副钱包地址,其中,基于所述助记词能够推导出所述副钱包私钥;
使用所述主钱包密码对所述副钱包私钥进行加密;
将所述副钱包地址和加密后的副钱包私钥写入存储。
3.根据权利要求2所述的方法,其中,所述获取所述用户输入的主钱包密码,利用所述主钱包密码作为参数,将所述主钱包私钥加密并写入存储包括:
生成主钱包随机盐;
获取所述用户输入的主钱包密码,利用所述主钱包随机盐和所述主钱包密码作为参数,将所述主钱包私钥加密并与所述主钱包随机盐一起写入存储;
使用所述主钱包密码对所述副钱包私钥进行加密包括:
生成副钱包随机盐;
使用所述主钱包密码和所述副钱包随机盐对所述副钱包私钥进行加密。
4.根据权利要求2所述的方法,其中,在将所述主钱包地址、所述副钱包随机盐、副钱包地址和加密后的副钱包私钥写入存储之后,所述方法还包括:
对所有钱包的存储内容进行校验,校验成功后生成相应的校验码并更新至存储中。
5.根据权利要求3所述的方法,所有钱包组的存储内容还包括副钱包的个数、每个钱包的账号索引。
6.根据权利要求1所述的方法,其中,所述基于所述随机种子生成主钱包私钥包括:
基于所述随机种子通过不可逆哈希算法生成512位的哈希串,其中,所述哈希串的左256为主钱包公钥,所述哈希串的右256位为主钱包链码;
通过所述主钱包公钥和主钱包链码推导出主钱包私钥。
7.一种数字钱包使用方法,用于根据权利要求1-6中任一项所述的方法生成的数字钱包,所述方法包括:
响应于用户选中所述主钱包和至少一个所述副钱包,读取所述主钱包地址和至少一个所述副钱包地址;
获取用户输入的主钱包密码,基于所述主钱包密码读取加密后的主钱包私钥以及至少一个加密后的副钱包私钥,解密出主钱包私钥和至少一个副钱包私钥;
获取用户输入的待转账资金以及接收资金的地址,基于所述待转账资金和所述接收资金的地址生成交易,使用所述主钱包私钥和所述至少一个副钱包私钥签名交易并发送至区块链。
8.根据权利要求7所述的方法,其中,所述获取用户输入的主钱包密码,基于所述主钱包密码读取加密后的主钱包私钥以及至少一个加密后的副钱包私钥,解密出主钱包私钥和至少一个副钱包私钥包括:
获取用户输入的主钱包密码,基于所述主钱包密码读取主钱包随机盐和加密后的主钱包私钥以及至少一个副钱包随机盐和至少一个加密后的副钱包私钥,解密出主钱包私钥和至少一个副钱包私钥。
9.一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1至8任一项所述方法的步骤。
10.一种存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现权利要求1至8任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310123559.2A CN116629859A (zh) | 2023-02-09 | 2023-02-09 | 数字钱包生成和数字钱包使用方法、电子设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310123559.2A CN116629859A (zh) | 2023-02-09 | 2023-02-09 | 数字钱包生成和数字钱包使用方法、电子设备以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116629859A true CN116629859A (zh) | 2023-08-22 |
Family
ID=87590803
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310123559.2A Pending CN116629859A (zh) | 2023-02-09 | 2023-02-09 | 数字钱包生成和数字钱包使用方法、电子设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116629859A (zh) |
-
2023
- 2023-02-09 CN CN202310123559.2A patent/CN116629859A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2021203184B2 (en) | Transaction messaging | |
CN107465505B (zh) | 一种密钥数据处理方法、装置及服务器 | |
CN104715187B (zh) | 用于认证电子通信系统中的节点的方法和装置 | |
CN117579281A (zh) | 用于使用区块链的所有权验证的方法和系统 | |
US20170011394A1 (en) | Cryptographic security for mobile payments | |
CN111784001B (zh) | 一种模型训练方法、设备及计算机可读存储介质 | |
CN107612683B (zh) | 一种加解密方法、装置、系统、设备和存储介质 | |
CN108647964A (zh) | 一种区块链数据处理方法、装置及计算机可读存储介质 | |
CN111314069B (zh) | 基于区块链的摇号系统、方法、电子设备及存储介质 | |
CN110175840A (zh) | 联盟链中实现轻钱包机制的方法、客户端、联盟链及系统 | |
JP2002520905A (ja) | 漏洩抵抗力を有する暗号索引付き鍵の更新方法及びデバイス | |
CN109672521B (zh) | 基于国密加密引擎实现的安全存储系统和方法 | |
US20220303114A9 (en) | Format-preserving encryption method based on stream cipher | |
CN110881063A (zh) | 一种隐私数据的存储方法、装置、设备及介质 | |
CN109995781A (zh) | 数据的传输方法、装置、介质以及设备 | |
US11568085B2 (en) | Systems and methods for tokenization to support pseudonymization of sensitive data | |
CN110750329B (zh) | 基于fpga实现虚拟机运算的方法及装置 | |
CN107040520B (zh) | 一种云计算数据共享系统及方法 | |
CN109711834B (zh) | 一种区块链冷钱包的地址管理方法 | |
CN108199847A (zh) | 数字安全处理方法、计算机设备及存储介质 | |
CN111935197A (zh) | 一种招标文件加解密方法及装置 | |
CN112199697A (zh) | 基于共享根密钥的信息处理方法、装置、设备及介质 | |
CN110544090A (zh) | 一种数字货币硬钱包应用实现方法、sim卡及系统 | |
CN108768975A (zh) | 支持密钥更新和第三方隐私保护的数据完整性验证方法 | |
Homoliak et al. | An air-gapped 2-factor authentication for smart-contract wallets |
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 |