一种安全的恢复硬件钱包主密钥的实现方法及装置转让专利

申请号 : CN201910573615.6

文献号 : CN110310105B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陆舟于华章

申请人 : 飞天诚信科技股份有限公司

摘要 :

本发明公开一种安全的恢复硬件钱包主密钥的实现方法及装置,该方法包括:硬件钱包根据接收到的恢复钱包指令中的助记码数量生成助记码索引列表;将助记码索引列表中的列表单元随机重新排列;显示助记码索引列表中的索引并给上位机发送输入助记码请求;当接收到上位机发送的助记码时,根据索引将对应的助记码保存到助记码索引列表的相应列表单元中;按照索引大小按序依次取出助记码索引列表的每个列表单元中的助记码;在助记短语预设词典中查找与各个助记码对应的助记码标识,如找到则将查找到的助记码标识顺序拼接得到助记短语标识;根据助记短语标识生成主密钥并保存,如未找到则报错。本发明保障了用户的财产安全,方便用户使用。

权利要求 :

1.一种安全的恢复硬件钱包主密钥的实现方法,其特征在于,包括:步骤S1:当硬件钱包接收到上位机发送的恢复钱包指令时,根据所述恢复钱包指令中的助记码数量生成助记码索引列表,所述助记码索引列表中包含按序存储的列表单元,列表单元中包括索引;

步骤S2:所述硬件钱包将助记码索引列表中的列表单元随机重新排列;

步骤S3:所述硬件钱包显示所述助记码索引列表中的索引并给所述上位机发送输入助记码请求;

步骤S4:当所述硬件钱包接收到所述上位机发送的助记码时,根据索引将对应的助记码保存到助记码索引列表的相应列表单元中;

步骤S5:所述硬件钱包按照索引大小按序依次取出所述助记码索引列表的每个列表单元中的助记码;

步骤S6:所述硬件钱包在助记短语预设词典中查找与各个助记码对应的助记码标识,如找到则将查找到的助记码标识顺序拼接得到助记短语标识;所述硬件钱包根据所述助记短语标识生成主密钥并保存,如未找到则报错;

所述根据所述恢复钱包指令中的助记码数量生成助记码索引列表,包括:步骤B1:所述硬件钱包根据所述助记码数量和预设数量计算得到需补足助记码数量,根据所述需补足助记码数量从助记码表中选取对应个数的助记码;生成预设数量的编号作为索引,根据所述索引生成助记码索引列表;

步骤B2:所述硬件钱包将选取的助记码保存在所述助记码索引列表的列表单元中;所述列表单元中的索引和助记码一一对应;

步骤B3:所述硬件钱包将助记码索引列表中包括索引和对应助记码的列表单元的顺序打乱并随机重新排列。

2.如权利要求1所述的方法,其特征在于,所述步骤S5包括:所述硬件钱包将助记码索引列表中的列表单元按序重新排列;顺序取出每个列表单元中的助记码。

3.如权利要求1所述的方法,其特征在于,所述硬件钱包根据所述助记短语标识生成主密钥并保存包括:

步骤A1:所述硬件钱包根据助记短语标识的长度计算密钥种子长度,根据所述密钥种子长度从助记短语标识的起始位置开始截取对应长度的数据得到密钥种子;

步骤A2:所述硬件钱包将助记短语标识中除密钥种子外的其他数据作为第二校验值;

使用第一预设算法对所述密钥种子进行计算得到第一计算结果,从所述第一计算结果起始位置截取与第二校验值等长的数据得到第一校验值;

步骤A3:所述硬件钱包判断所述第一校验值与所述第二校验值是否匹配,是则执行步骤A4,否则给所述上位机返回恢复钱包失败信息;

步骤A4:所述硬件钱包根据所述密钥种子通过第二预设算法生成主密钥并保存在安全存储区中。

4.如权利要求1所述的方法,其特征在于,所述步骤S6之后还包括:所述硬件钱包将状态设置为已初始化,并向所述上位机返回恢复钱包成功信息。

5.如权利要求1所述的方法,其特征在于,所述根据所述恢复钱包指令中的助记码数量生成助记码索引列表之前包括:所述硬件钱包从所述恢复钱包指令中获取助记码数量,并判断所述助记码数量是否符合预设要求,是则根据所述恢复钱包指令中的助记码数量生成助记码索引列表,否则报错。

6.如权利要求1所述的方法,其特征在于,所述步骤S3包括:所述硬件钱包显示所述助记码索引列表中的所有索引并给所述上位机发送输入助记码请求。

7.如权利要求6所述的方法,其特征在于,所述步骤S4包括:当所述硬件钱包接收到所述上位机发送的所有助记码时,依次根据每个索引将对应的助记码保存在助记码索引列表的列表单元中。

8.如权利要求1所述的方法,其特征在于,所述步骤S3包括:所述硬件钱包显示所述助记码索引列表中的一个无对应助记码的索引并给上位机发送输入助记码请求。

9.如权利要求8所述的方法,其特征在于,所述步骤S4包括:步骤S4‑1:当所述硬件钱包接收到所述上位机发送的单个助记码时,将接收到的助记码保存在助记码索引列表的对应列表单元中;

步骤S4‑2:所述硬件钱包判断所述助记码索引列表中的索引是否均有对应的助记码,是则执行步骤S5,否则返回步骤S3。

10.如权利要求1所述的方法,其特征在于,所述硬件钱包将选取的助记码保存在所述助记码索引列表的列表单元中,包括:所述硬件钱包按正序将选取的助记码保存在所述助记码索引列表的列表单元中,或所述硬件钱包按倒序将选取的助记码保存在所述助记码索引列表的列表单元中,或所述硬件钱包按间隔的方式将选取的助记码保存在所述助记码索引列表的列表单元中。

11.如权利要求1所述的方法,其特征在于,所述步骤S3和步骤S4包括:步骤C1:所述硬件钱包将重新排列的助记码索引列表中的第一个索引作为当前索引;

步骤C2:所述硬件钱包判断当前索引对应的助记码是否为空,是则执行步骤C3,否则执行步骤C5;

步骤C3:所述硬件钱包显示当前索引,并向所述上位机发送输入助记码请求;

步骤C4:当所述硬件钱包接收到所述上位机发送的助记码时将所述助记码填入助记码索引列表中对应于当前索引的列表单元中,执行步骤C8;

步骤C5:所述硬件钱包显示当前索引对应的助记码,并向所述上位机发送输入助记码请求;

步骤C6:当所述硬件钱包接收到所述上位机发送的助记码时,判断接收到的助记码与助记码索引列表中的与当前索引对应的助记码是否一致,是则执行步骤C8,否则执行步骤C7;

步骤C7:所述硬件钱包提示输入助记码错误,返回步骤B3;

步骤C8:所述硬件钱包判断重新排列后的助记码索引列表中的所有索引是否均有对应的助记码,是则执行步骤S4,否则执行步骤C9;

步骤C9:所述硬件钱包将重新排列后的助记码索引列表中的下一个索引作为当前索引,返回步骤C2。

12.如权利要求11所述的方法,其特征在于,所述步骤C7中返回步骤B3之前还包括:所述硬件钱包更新输错次数,判断输错次数是否等于预设值,是则报错,结束,否则返回步骤B3。

13.一种安全的恢复硬件钱包主密钥的实现装置,其特征在于,包括:第一生成模块,用于当接收到上位机发送的恢复钱包指令时,根据所述恢复钱包指令中的助记码数量生成助记码索引列表,所述助记码索引列表中包含按序存储的列表单元,列表单元中包括索引;

第一排列模块,用于将所述第一生成模块生成的助记码索引列表中的列表单元随机重新排列;

显示发送模块,用于显示所述助记码索引列表中的索引并给所述上位机发送输入助记码请求;

接收保存模块,用于当接收到所述上位机发送的助记码时,根据索引将对应的助记码保存到助记码索引列表的相应列表单元中;

第一提取模块,用于按照索引大小按序依次取出所述助记码索引列表的每个列表单元中的助记码;

查找拼接模块,用于在助记短语预设词典中查找与所述第一提取模块取出的各个助记码对应的助记码标识,如找到则将查找到的助记码标识顺序拼接得到助记短语标识,触发生成保存模块,如未找到则报错;

所述生成保存模块,用于根据所述助记短语标识生成主密钥并保存;

所述第一生成模块,包括:

计算生成单元,用于当接收到所述上位机发送的恢复钱包指令时,根据所述恢复钱包指令中的助记码数量和预设数量计算得到需补足助记码数量,根据所述需补足助记码数量从助记码表中选取对应个数的助记码;生成所述预设数量的编号作为索引,根据所述索引生成助记码索引列表;

第一保存单元,用于将所述计算生成单元选取的助记码保存在所述助记码索引列表的列表单元中;所述列表单元中的索引和助记码一一对应;

打乱排列单元,用于将所述助记码索引列表中包括索引和对应助记码的列表单元的顺序打乱并随机重新排列。

14.如权利要求13所述的装置,其特征在于,所述第一提取模块具体用于将助记码索引列表中的列表单元按序重新排列;顺序取出每个列表单元中的助记码。

15.如权利要求13所述的装置,其特征在于,所述生成保存模块包括:第一计算截取单元,用于根据助记短语标识的长度计算密钥种子长度,根据密钥种子长度从助记短语标识的起始位置开始截取对应长度的数据得到密钥种子;

第二计算截取单元,用于将助记短语标识中除密钥种子外的其他数据作为第二校验值;使用第一预设算法对所述密钥种子进行计算得到第一计算结果,从所述第一计算结果起始位置截取与所述第二校验值等长的数据得到第一校验值;

第一判断单元,用于判断所述第一校验值与所述第二校验值是否匹配,是则触发生成保存单元,否则给所述上位机返回恢复钱包失败信息;

所述生成保存单元,用于根据所述密钥种子通过第二预设算法生成主密钥并保存在安全存储区中。

16.如权利要求13所述的装置,其特征在于,还包括:设置模块,用于在所述生成保存模块保存主密钥之后将状态设置为已初始化,并向所述上位机返回恢复钱包成功信息。

17.如权利要求13所述的装置,其特征在于,还包括:获取判断模块,用于当接收到所述上位机发送的恢复钱包指令时,从所述恢复钱包指令中获取助记码数量,并判断所述助记码数量是否符合预设要求,是则触发所述第一生成模块,否则报错。

18.如权利要求13所述的装置,其特征在于,所述显示发送模块具体用于显示所述助记码索引列表中的所有索引并给上位机发送输入助记码请求。

19.如权利要求18所述的装置,其特征在于,所述接收保存模块具体用于接收上位机发送的所有助记码,并依次根据每个索引将对应的助记码保存在助记码索引列表的列表单元中。

20.如权利要求13所述的装置,其特征在于,所述显示发送模块具体用于显示所述助记码索引列表中的一个无对应助记码的索引并给所述上位机发送输入助记码请求。

21.如权利要求20所述的装置,其特征在于,所述接收保存模块包括:第一接收保存单元,用于接收所述上位机发送的单个助记码,将接收到的助记码保存在助记码索引列表的对应列表单元中;

第二判断单元,用于判断所述助记码索引列表中的索引是否均有对应的助记码,是则触发所述第一提取模块,否则触发所述显示发送模块。

22.如权利要求13所述的装置,其特征在于,所述第一保存单元具体用于按正序将选取的助记码保存在所述助记码索引列表的列表单元中,或按倒序将选取的助记码保存在所述助记码索引列表的列表单元中,或按间隔的方式将选取的助记码保存在所述助记码索引列表的列表单元中;所述列表单元中的索引和助记码一一对应。

23.如权利要求13所述的装置,其特征在于,所述显示发送模块包括第一作为单元、第三判断单元、第一显示发送单元、第二显示发送单元,所述接收保存模块包括第二接收保存单元、接收判断单元、第四判断单元、第二作为单元;

所述第一作为单元,用于将重新排列的助记码索引列表中的第一个索引作为当前索引;

所述第三判断单元,用于判断当前索引对应的助记码是否为空,是则触发所述第一显示发送单元,否则触发所述第二显示发送单元;

所述第一显示发送单元,用于显示当前索引,并向所述上位机发送输入助记码请求;

所述第二接收保存单元,用于接收所述上位机发送的助记码并将所述助记码填入助记码索引列表中对应于当前索引的列表单元中,触发所述第四判断单元;

所述第二显示发送单元,用于显示当前索引对应的助记码,并向所述上位机发送输入助记码请求;

所述接收判断单元,用于接收上位机发送的助记码,并判断接收到的助记码与所述助记码索引列表中的与当前索引对应的助记码是否一致,是触发所述第四判断单元,否则提示输入助记码错误,触发所述打乱排列单元;

所述第四判断单元,用于判断重新排列后的助记码索引列表中的所有索引是否均有对应的助记码,是则触发所述第一提取模块,否则触发所述第二作为单元;

所述第二作为单元,用于将重新排列后的助记码索引列表中的下一个索引作为当前索引,触发所述第三判断单元。

24.如权利要求23所述的装置,其特征在于,所述接收保存模块还包括:更新判断单元,用于在所述接收判断单元判断为否时更新输错次数,判断输错次数是否等于预设值,是则报错,结束,否则触发所述打乱排列单元。

说明书 :

一种安全的恢复硬件钱包主密钥的实现方法及装置

技术领域

[0001] 本发明涉及信息网络领域,尤其涉及一种安全的恢复硬件钱包主密钥的实现方法及装置。

背景技术

[0002] 硬件钱包是指将数字资产私钥单独储存在一个芯片中,与互联网隔离,即插即用。助记码是一系列有顺序的单词形成的组合,是对硬件钱包内所产生的密钥种子的一种人为
可读的备份。助记码与硬件钱包内的密钥种子一一对应,用户通过助记码可在硬件钱包上
获取该助记码所对应的密钥种子,得到密钥种子后经过计算得到主密钥,用户就可使用硬
件钱包,即对硬件钱包所保存的所有数字货币资产进行处理。可见,助记码的安全性与硬件
钱包的安全性息息相关。
[0003] 硬件钱包在使用过程中通过上位机按顺序输入助记码,该方式极易被键盘监控或屏幕监控手段截取到助记码,或者通过监控上位机与设备的通信链路获取助记码,造成助
记码泄露,使用户遭受财产损失。此外,用户在使用硬件钱包时,可能出现硬件钱包丢失、被
窃或损坏等情况,有时用户也会自主或意外地将硬件钱包内的密钥种子清空,密钥种子丢
失无法生成主密钥,使硬件钱包重置为初始状态,而导致硬件钱包无法使用。此时,为了继
续管理数字资产,用户需要在硬件钱包上重新生成原来的主密钥。故亟需一种较安全的方
法来恢复硬件钱包主密钥。

发明内容

[0004] 本发明的目的是为了克服现有技术的不足,提供一种安全的恢复硬件钱包主密钥的实现方法及装置。
[0005] 本发明提供了一种安全的恢复硬件钱包主密钥的实现方法,包括:
[0006] 步骤S1:当硬件钱包接收到上位机发送的恢复钱包指令时,根据所述恢复钱包指令中的助记码数量生成助记码索引列表,所述助记码索引列表中包含按序存储的列表单
元,列表单元中包括索引;
[0007] 步骤S2:所述硬件钱包将助记码索引列表中的列表单元随机重新排列;
[0008] 步骤S3:所述硬件钱包显示所述助记码索引列表中的索引并给所述上位机发送输入助记码请求;
[0009] 步骤S4:当所述硬件钱包接收到所述上位机发送的助记码时,根据索引将对应的助记码保存到助记码索引列表的相应列表单元中;
[0010] 步骤S5:所述硬件钱包按照索引大小按序依次取出所述助记码索引列表的每个列表单元中的助记码;
[0011] 步骤S6:所述硬件钱包在助记短语预设词典中查找与各个助记码对应的助记码标识,如找到则将查找到的助记码标识顺序拼接得到助记短语标识;所述硬件钱包根据所述
助记短语标识生成主密钥并保存,如未找到则报错。
[0012] 进一步地,所述步骤S5包括:所述硬件钱包将助记码索引列表中的列表单元按序重新排列;顺序取出每个列表单元中的助记码。
[0013] 进一步地,所述硬件钱包根据所述助记短语标识生成主密钥并保存包括:
[0014] 步骤A1:所述硬件钱包根据助记短语标识的长度计算密钥种子长度,根据所述密钥种子长度从助记短语标识的起始位置开始截取对应长度的数据得到密钥种子;
[0015] 步骤A2:所述硬件钱包将助记短语标识中除密钥种子外的其他数据作为第二校验值;使用第一预设算法对所述密钥种子进行计算得到第一计算结果,从所述第一计算结果
起始位置截取与第二校验值等长的数据得到第一校验值;
[0016] 步骤A3:所述硬件钱包判断所述第一校验值与所述第二校验值是否匹配,是则执行步骤A4,否则给所述上位机返回恢复钱包失败信息;
[0017] 步骤A4:所述硬件钱包根据所述密钥种子通过第二预设算法生成主密钥并保存在安全存储区中。
[0018] 进一步地,所述步骤S6之后还包括:所述硬件钱包将状态设置为已初始化,并向所述上位机返回恢复钱包成功信息。
[0019] 进一步地,所述根据所述恢复钱包指令中的助记码数量生成助记码索引列表之前包括:所述硬件钱包从所述恢复钱包指令中获取助记码数量,并判断所述助记码数量是否
符合预设要求,是则根据所述恢复钱包指令中的助记码数量生成助记码索引列表,否则报
错。
[0020] 进一步地,所述步骤S3包括:所述硬件钱包显示所述助记码索引列表中的所有索引并给所述上位机发送输入助记码请求。
[0021] 进一步地,所述步骤S4包括:当所述硬件钱包接收到所述上位机发送的所有助记码时,依次根据每个索引将对应的助记码保存在助记码索引列表的列表单元中。
[0022] 进一步地,所述步骤S3包括:所述硬件钱包显示所述助记码索引列表中的一个无对应助记码的索引并给上位机发送输入助记码请求。
[0023] 进一步地,所述步骤S4包括:
[0024] 步骤S4‑1:当所述硬件钱包接收到所述上位机发送的单个助记码时,将接收到的助记码保存在助记码索引列表的对应列表单元中;
[0025] 步骤S4‑2:所述硬件钱包判断所述助记码索引列表中的索引是否均有对应的助记码,是则执行步骤S5,否则返回步骤S3。
[0026] 进一步地,所述根据所述恢复钱包指令中的助记码数量生成助记码索引列表,包括:
[0027] 步骤B1:所述硬件钱包根据所述助记码数量和预设数量计算得到需补足助记码数量,根据所述需补足助记码数量从助记码表中选取对应个数的助记码;生成预设数量的编
号作为索引,根据所述索引生成助记码索引列表;
[0028] 步骤B2:所述硬件钱包将选取的助记码保存在所述助记码索引列表的列表单元中;所述列表单元中的索引和助记码一一对应;
[0029] 步骤B3:所述硬件钱包将助记码索引列表中包括索引和对应助记码的列表单元的顺序打乱并随机重新排列。
[0030] 进一步地,所述硬件钱包将选取的助记码保存在所述助记码索引列表的列表单元中,包括:所述硬件钱包按正序将选取的助记码保存在所述助记码索引列表的列表单元中,
或所述硬件钱包按倒序将选取的助记码保存在所述助记码索引列表的列表单元中,或所述
硬件钱包按间隔的方式将选取的助记码保存在所述助记码索引列表的列表单元中。
[0031] 进一步地,所述步骤S3和步骤S4包括:
[0032] 步骤C1:所述硬件钱包将重新排列的助记码索引列表中的第一个索引作为当前索引;
[0033] 步骤C2:所述硬件钱包判断当前索引对应的助记码是否为空,是则执行步骤C3,否则执行步骤C5;
[0034] 步骤C3:所述硬件钱包显示当前索引,并向所述上位机发送输入助记码请求;
[0035] 步骤C4:当所述硬件钱包接收到所述上位机发送的助记码时将所述助记码填入助记码索引列表中对应于当前索引的列表单元中,执行步骤C8;
[0036] 步骤C5:所述硬件钱包显示当前索引对应的助记码,并向所述上位机发送输入助记码请求;
[0037] 步骤C6:当所述硬件钱包接收到所述上位机发送的助记码时,判断接收到的助记码与助记码索引列表中的与当前索引对应的助记码是否一致,是则执行步骤C8,否则执行
步骤C7;
[0038] 步骤C7:所述硬件钱包提示输入助记码错误,返回步骤B3;
[0039] 步骤C8:所述硬件钱包判断重新排列后的助记码索引列表中的所有索引是否均有对应的助记码,是则执行步骤S4,否则执行步骤C9;
[0040] 步骤C9:所述硬件钱包将重新排列后的助记码索引列表中的下一个索引作为当前索引,返回步骤C2。
[0041] 进一步地,所述步骤C7中返回步骤B3之前还包括:所述硬件钱包更新输错次数,判断输错次数是否等于预设值,是则报错,结束,否则返回步骤B3。
[0042] 本发明又提供了一种安全的恢复硬件钱包主密钥的实现装置,包括:
[0043] 第一生成模块,用于当接收到上位机发送的恢复钱包指令时,根据所述恢复钱包指令中的助记码数量生成助记码索引列表,所述助记码索引列表中包含按序存储的列表单
元,列表单元中包括索引;
[0044] 第一排列模块,用于将所述第一生成模块生成的助记码索引列表中的列表单元随机重新排列;
[0045] 显示发送模块,用于显示所述助记码索引列表中的索引并给所述上位机发送输入助记码请求;
[0046] 接收保存模块,用于当接收到所述上位机发送的助记码时,根据索引将对应的助记码保存到助记码索引列表的相应列表单元中;
[0047] 第一提取模块,用于按照索引大小按序依次取出所述助记码索引列表的每个列表单元中的助记码;
[0048] 查找拼接模块,用于在助记短语预设词典中查找与所述第一提取模块取出的各个助记码对应的助记码标识,如找到则将查找到的助记码标识顺序拼接得到助记短语标识,
触发生成保存模块,如未找到则报错;
[0049] 所述生成保存模块,用于根据所述助记短语标识生成主密钥并保存。
[0050] 进一步地,所述第一提取模块具体用于将助记码索引列表中的列表单元按序重新排列;顺序取出每个列表单元中的助记码。
[0051] 进一步地,所述生成保存模块包括:
[0052] 第一计算截取单元,用于根据助记短语标识的长度计算密钥种子长度,根据密钥种子长度从助记短语标识的起始位置开始截取对应长度的数据得到密钥种子;
[0053] 第二计算截取单元,用于将助记短语标识中除密钥种子外的其他数据作为第二校验值;使用第一预设算法对所述密钥种子进行计算得到第一计算结果,从所述第一计算结
果起始位置截取与所述第二校验值等长的数据得到第一校验值;
[0054] 第一判断单元,用于判断所述第一校验值与所述第二校验值是否匹配,是则触发生成保存单元,否则给所述上位机返回恢复钱包失败信息;
[0055] 所述生成保存单元,用于根据所述密钥种子通过第二预设算法生成主密钥并保存在安全存储区中。
[0056] 进一步地,所述装置还包括:设置模块,用于在所述生成保存模块保存主密钥之后将状态设置为已初始化,并向所述上位机返回恢复钱包成功信息。
[0057] 进一步地,所述装置还包括:获取判断模块,用于当接收到所述上位机发送的恢复钱包指令时,从所述恢复钱包指令中获取助记码数量,并判断所述助记码数量是否符合预
设要求,是则触发所述第一生成模块,否则报错。
[0058] 进一步地,所述显示发送模块具体用于显示所述助记码索引列表中的所有索引并给上位机发送输入助记码请求。
[0059] 进一步地,所述接收保存模块具体用于接收上位机发送的所有助记码,并依次根据每个索引将对应的助记码保存在助记码索引列表的列表单元中。
[0060] 进一步地,所述显示发送模块具体用于显示所述助记码索引列表中的一个无对应助记码的索引并给所述上位机发送输入助记码请求。
[0061] 进一步地,所述接收保存模块包括:
[0062] 第一接收保存单元,用于接收所述上位机发送的单个助记码,将接收到的助记码保存在助记码索引列表的对应列表单元中;
[0063] 第二判断单元,用于判断所述助记码索引列表中的索引是否均有对应的助记码,是则触发所述第一提取模块,否则触发所述显示发送模块。
[0064] 进一步地,所述第一生成模块,包括:
[0065] 计算生成单元,用于当接收到所述上位机发送的恢复钱包指令时,根据所述恢复钱包指令中的助记码数量和预设数量计算得到需补足助记码数量,根据所述需补足助记码
数量从助记码表中选取对应个数的助记码;生成所述预设数量的编号作为索引,根据所述
索引生成助记码索引列表;
[0066] 第一保存单元,用于将所述计算生成单元选取的助记码保存在所述助记码索引列表的列表单元中;所述列表单元中的索引和助记码一一对应;
[0067] 打乱排列单元,用于将所述助记码索引列表中包括索引和对应助记码的列表单元的顺序打乱并随机重新排列。
[0068] 进一步地,所述第一保存单元具体用于按正序将选取的助记码保存在所述助记码索引列表的列表单元中,或按倒序将选取的助记码保存在所述助记码索引列表的列表单元
中,或按间隔的方式将选取的助记码保存在所述助记码索引列表的列表单元中;所述列表
单元中的索引和助记码一一对应。
[0069] 进一步地,所述显示发送模块包括第一作为单元、第三判断单元、第一显示发送单元、第二显示发送单元,所述接收保存模块包括第二接收保存单元、接收判断单元、第四判
断单元、第二作为单元;
[0070] 所述第一作为单元,用于将重新排列的助记码索引列表中的第一个索引作为当前索引;
[0071] 所述第三判断单元,用于判断当前索引对应的助记码是否为空,是则触发所述第一显示发送单元,否则触发所述第二显示发送单元;
[0072] 所述第一显示发送单元,用于显示当前索引,并向所述上位机发送输入助记码请求;
[0073] 所述第二接收保存单元,用于接收所述上位机发送的助记码并将所述助记码填入助记码索引列表中对应于当前索引的列表单元中,触发所述第四判断单元;
[0074] 所述第二显示发送单元,用于显示当前索引对应的助记码,并向所述上位机发送输入助记码请求;
[0075] 所述接收判断单元,用于接收上位机发送的助记码,并判断接收到的助记码与所述助记码索引列表中的与当前索引对应的助记码是否一致,是触发所述第四判断单元,否
则提示输入助记码错误,触发所述打乱排列单元;
[0076] 所述第四判断单元,用于判断重新排列后的助记码索引列表中的所有索引是否均有对应的助记码,是则触发所述第一提取模块,否则触发所述第二作为单元;
[0077] 所述第二作为单元,用于将重新排列后的助记码索引列表中的下一个索引作为当前索引,触发所述第三判断单元。
[0078] 进一步地,所述接收保存模块还包括:更新判断单元,用于在所述接收判断单元判断为否时更新输错次数,判断输错次数是否等于预设值,是则报错,结束,否则触发所述打
乱排列单元。
[0079] 本发明与现有技术相比,具有以下优点:
[0080] 本发明技术方案中用户可以安全地给自己的硬件钱包设备输入助记码,保障了用户的财产安全,保证用户信息不会被上位机潜在的恶意软件所盗取,且在种子密钥丢失或
者清空的情况下也可以安全的恢复硬件钱包的主密钥,方便用户使用。

附图说明

[0081] 图1为本发明实施例一提供的一种安全的恢复硬件钱包主密钥的实现方法流程图;
[0082] 图2为本发明实施例二提供的一种安全的恢复硬件钱包主密钥的实现方法流程图;
[0083] 图3为本发明实施例三提供的一种安全的恢复硬件钱包主密钥的实现方法流程图;
[0084] 图4为本发明实施例四提供的一种安全的恢复硬件钱包主密钥的实现装置方框图。

具体实施方式

[0085] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于
本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施
例,都属于本发明保护的范围。
[0086] 实施例一
[0087] 本发明实施例一提供一种安全的恢复硬件钱包主密钥的实现方法,如图1所示,包括:
[0088] 步骤S1:当硬件钱包接收到上位机发送的恢复钱包指令时,根据恢复钱包指令中的助记码数量生成助记码索引列表;
[0089] 本实施例中的助记码索引列表中包含按序存储的列表单元,列表单元中包括索引;
[0090] 在本实施例中,根据恢复钱包指令中的助记码数量生成助记码索引列表之前包括:硬件钱包从恢复钱包指令中获取助记码数量,并判断助记码数量是否符合预设要求,是
则根据恢复钱包指令中的助记码数量生成助记码索引列表,否则报错;
[0091] 具体的,根据恢复钱包指令中的助记码数量生成助记码索引列表,包括:
[0092] 步骤B1:硬件钱包根据助记码数量和预设数量计算得到需补足助记码数量,根据需补足助记码数量从助记码表中选取对应个数的助记码;生成预设数量的编号作为索引,
根据索引生成助记码索引列表;
[0093] 步骤B2:硬件钱包将选取的助记码保存在助记码索引列表的列表单元中;列表单元中的索引和助记码一一对应;
[0094] 可选的,硬件钱包将选取的助记码保存在助记码索引列表的列表单元中,包括:硬件钱包按正序将选取的助记码保存在助记码索引列表的列表单元中,或硬件钱包按倒序将
选取的助记码保存在助记码索引列表的列表单元中,或硬件钱包按间隔的方式将选取的助
记码保存在助记码索引列表的列表单元中;
[0095] 步骤B3:硬件钱包将助记码索引列表中包括索引和对应助记码的列表单元的顺序打乱并随机重新排列;
[0096] 步骤S2:硬件钱包将助记码索引列表中的列表单元随机重新排列;
[0097] 步骤S3:硬件钱包显示助记码索引列表中的索引并给上位机发送输入助记码请求;
[0098] 步骤S4:当硬件钱包接收到上位机发送的助记码时,根据索引将对应的助记码保存到助记码索引列表的相应列表单元中;
[0099] 步骤S5:硬件钱包按照索引大小按序依次取出助记码索引列表的每个列表单元中的助记码;
[0100] 可选的,在本实施例中,步骤S5包括:硬件钱包将助记码索引列表中的列表单元按序重新排列;顺序取出每个列表单元中的助记码;
[0101] 步骤S6:硬件钱包在助记短语预设词典中查找与各个助记码对应的助记码标识,如找到则将查找到的助记码标识顺序拼接得到助记短语标识;硬件钱包根据助记短语标识
生成主密钥并保存,如未找到则报错。
[0102] 具体的,在本实施例中,硬件钱包根据助记短语标识生成主密钥并保存包括:
[0103] 步骤A1:硬件钱包根据助记短语标识的长度计算密钥种子长度,根据密钥种子长度从助记短语标识的起始位置开始截取对应长度的数据得到密钥种子;
[0104] 步骤A2:硬件钱包将助记短语标识中除密钥种子外的其他数据作为第二校验值;使用第一预设算法对密钥种子进行计算得到第一计算结果,从第一计算结果起始位置截取
与第二校验值等长的数据得到第一校验值;
[0105] 步骤A3:硬件钱包判断第一校验值与第二校验值是否匹配,是则执行步骤A4,否则给上位机返回恢复钱包失败信息;
[0106] 步骤A4:硬件钱包根据密钥种子通过第二预设算法生成主密钥并保存在安全存储区中。
[0107] 可选的,在步骤S6之后还包括:硬件钱包将状态设置为已初始化,并向上位机返回恢复钱包成功信息。
[0108] 在本实施例中,硬件钱包可以一次显示全部索引,用户输入对应的全部助记(每个助记码之间可以用空格进行区分)码发送给硬件钱包,硬件钱包根据索引保存对应的助记
码在助记码索引列表的列表单元中;硬件钱包也可以一次只显示一个索引,用户每次输入
一个对应的助记码给硬件钱包来保存进行实现;
[0109] 如硬件钱包一次显示全部索引,则步骤S3包括:硬件钱包显示助记码索引列表中的所有索引并给上位机发送输入助记码请求。
[0110] 相应的,步骤S4包括:当硬件钱包接收到上位机发送的所有助记码时,依次根据每个索引将对应的助记码保存在助记码索引列表的列表单元中。
[0111] 如硬件钱包一次显示一个索引,则步骤S3包括:硬件钱包显示助记码索引列表中的一个无对应助记码的索引并给上位机发送输入助记码请求。
[0112] 相应的,步骤S4包括:
[0113] 步骤S4‑1:当硬件钱包接收到上位机发送的单个助记码时,将接收到的助记码保存在助记码索引列表的对应列表单元中;
[0114] 步骤S4‑2:硬件钱包判断助记码索引列表中的索引是否均有对应的助记码,是则执行步骤S5,否则返回步骤S3。
[0115] 如本实施例中在步骤S1中生成的助记码索引列表中的已有部分助记码,则步骤S3和步骤S4包括:
[0116] 步骤C1:硬件钱包将重新排列的助记码索引列表中的第一个索引作为当前索引;
[0117] 步骤C2:硬件钱包判断当前索引对应的助记码是否为空,是则执行步骤C3,否则执行步骤C5;
[0118] 步骤C3:硬件钱包显示当前索引,并向上位机发送输入助记码请求;
[0119] 步骤C4:当硬件钱包接收到上位机发送的助记码时将助记码填入助记码索引列表中对应于当前索引的列表单元中,执行步骤C8;
[0120] 步骤C5:硬件钱包显示当前索引对应的助记码,并向上位机发送输入助记码请求;
[0121] 步骤C6:当硬件钱包接收到上位机发送的助记码时,判断接收到的助记码与助记码索引列表中的与当前索引对应的助记码是否一致,是则执行步骤C8,否则执行步骤C7;
[0122] 可选的,步骤C7中返回步骤B3之前还包括:硬件钱包更新输错次数,判断输错次数是否等于预设值,是则报错,结束,否则返回步骤B3;
[0123] 步骤C7:硬件钱包提示输入助记码错误,返回步骤B3;
[0124] 步骤C8:硬件钱包判断重新排列后的助记码索引列表中的所有索引是否均有对应的助记码,是则执行步骤S4,否则执行步骤C9;
[0125] 步骤C9:硬件钱包将重新排列后的助记码索引列表中的下一个索引作为当前索引,返回步骤C2。
[0126] 实施例二
[0127] 本发明实施例二提供一种安全的恢复硬件钱包主密钥的实现方法,如图2所示,包括:
[0128] 步骤101:硬件钱包等待接收上位机发送的指令;
[0129] 步骤102:当硬件钱包接收到恢复钱包指令时,从恢复钱包指令中获取助记码数量;
[0130] 步骤103:硬件钱包判断助记码数量是否符合预设要求,是则执行步骤104,否则报错,返回步骤101;
[0131] 可选的,本实施例中的预设要求为12或18或24个;
[0132] 步骤104:硬件钱包根据助记码数量和预设数量计算得到需补足助记码数量,根据需补足助记码数量从助记码表中选取对应个数的助记码;生成预设数量的编号作为索引,
根据索引生成助记码索引列表;
[0133] 可选的,在本实施例中,硬件钱包根据助记码数量计算得到需补足助记码数量具体为:硬件钱包用预设数量减去助记码数量得到需补足助记码数量;例如预设数量为24,助
记码数量为18,则计算得到的需补足助记码数量为6;
[0134] 步骤105:硬件钱包将选取的助记码保存在助记码索引列表的列表单元中;
[0135] 本实施例的列表单元中的索引和助记码一一对应;
[0136] 具体的,在本实施例中,硬件钱包按正序将选取的助记码保存在助记码索引列表的列表单元中,或硬件钱包按倒序将选取的助记码保存在助记码索引列表的列表单元中,
或所述硬件钱包按间隔的方式将选取的助记码保存在助记码索引列表的列表单元中;优选
的,本实施例中,硬件钱包按倒序将选取的助记码保存在助记码索引列表的列表单元中;
[0137] 例如生成编号1‑24,助记码索引列表为:
[0138]索引 1 2 3 ...... 22 23 24
助记码         thy wpk mda
[0139] 步骤106:硬件钱包将助记码索引列表中包括索引和对应助记码的列表单元的顺序打乱并随机重新排列,并将重新排列的助记码索引列表中的第一个索引作为当前索引;
[0140] 例如,重新排列后的助记码索引列表为:
[0141]索引 5 23 15 ...... 22 3 24
助记码   wpk     thy   mda
[0142] 步骤107:硬件钱包判断当前索引对应的助记码是否为空,是则执行步骤108,否则执行步骤110;
[0143] 步骤108:硬件钱包显示当前索引,并向上位机发送输入助记码请求;
[0144] 在本实施例中,上位机接收到输入助记码请求后提醒用户输入与当前索引对应的助记码,然后上位机将该助记码发送给硬件钱包;具体实现方式可包括:
[0145] (1)上位机接收到输入助记码请求后弹出软键盘(9宫格的英文输入键盘或全键盘),用户通过软键盘输入与当前索引对应的助记码,然后上位机将该助记码发送给硬件钱
包;
[0146] (2)上位机接收到输入助记码请求提醒用户输入与当前索引对应的助记码的部分字母,然后上位机将部分字母发送给硬件钱包;硬件钱包根据部分字母查询助记码表,硬件
钱包在屏幕上显示包含部分字母的所有助记码并提示用户选择正确的助记码;
[0147] 步骤109:当硬件钱包接收到上位机发送的助记码时将该助记码填入助记码索引列表中对应于当前索引的列表单元中,执行步骤113;
[0148] 例如,当前索引为5,则步骤109之后的助记码索引列表如下表:
[0149] 索引 5 23 15 ...... 22 3 24助记码 cds wpk     thy   mda
[0150] 步骤110:硬件钱包显示当前索引对应的助记码,并向上位机发送输入助记码请求;
[0151] 在本实施例中,上位机接收到输入助记码请求后提醒用户输入硬件钱包显示的助记码,然后上位机将该助记码发送给硬件钱包;
[0152] 在步骤110中硬件钱包显示当前索引对应的助记码也可替换为:硬件钱包显示当前索引;上位机接收到输入助记码请求后提醒用户输入与当前索引对应的助记码,然后上
位机将该助记码发送给硬件钱包;
[0153] 步骤111:当硬件钱包接收到上位机发送的助记码时,判断接收到的助记码与助记码索引列表中的与当前索引对应的助记码是否一致,是则执行步骤113,否则执行步骤112;
[0154] 步骤112:硬件钱包提示输入助记码错误,返回步骤106;
[0155] 在本实施例中,返回步骤106之前还可包括:
[0156] 步骤A:硬件钱包更新输错次数,判断输错次数是否等于预设值,是则报错,结束,否则返回步骤106;
[0157] 例如,输错次数的初始值为0,预设值为6,则步骤A具体为:硬件钱包将出错次数自加1,判断输错次数是否为6,是则报错,结束,否则返回步骤106;
[0158] 例如,输错次数的初始值为6,预设值为0,则步骤A具体为:硬件钱包将出错次数自减1,判断输错次数是否为0,是则报错,结束,否则返回步骤106;
[0159] 步骤113:硬件钱包判断重新排列后的助记码索引列表中的所有索引是否均有对应的助记码,是则执行步骤115,否则执行步骤114;
[0160] 步骤114:硬件钱包将重新排列后的助记码索引列表中的下一个索引作为当前索引,返回步骤107;
[0161] 步骤115:硬件钱包将助记码索引列表按照索引从小到大的顺序重新排列;顺序取出助记码索引列表中助记码列中的助记码;
[0162] 例如,重新排列之后的助记码索引列表如下:
[0163] 索引 1 2 3 ...... 22 23 24助记码 mbj kgd iur   thy wpk mda
[0164] 步骤116:硬件钱包在助记短语预设词典中查找与各个助记码对应的助记码标识,将查找到的助记码标识顺序拼接得到助记短语标识;
[0165] 步骤117:硬件钱包根据助记短语标识的长度计算密钥种子长度,根据密钥种子长度从助记短语标识的起始位置开始截取对应长度的数据得到密钥种子;
[0166] 步骤118:硬件钱包将助记短语标识中除密钥种子的其他数据作为第二校验值;使用第一预设算法对密钥种子进行计算得到第一计算结果,从第一计算结果起始位置截取与
第二校验值等长的数据得到第一校验值;
[0167] 步骤119:硬件钱包判断第一校验值与第二校验值是否匹配,是则执行步骤120,否则给上位机返回恢复钱包失败信息,返回步骤101;
[0168] 步骤120:硬件钱包根据密钥种子通过第二预设算法生成主密钥并保存在安全存储区中;
[0169] 步骤121:硬件钱包将状态设置为已初始化,并向上位机返回恢复钱包成功信息;
[0170] 在本实施例中,上位机接收到恢复钱包成功信息之后显示恢复钱包成功。
[0171] 实施例三
[0172] 本发明实施例三提供一种安全的恢复硬件钱包主密钥的实现方法,如图3所示,包括:
[0173] 步骤201:硬件钱包等待接收上位机发送的指令;
[0174] 步骤202:当硬件钱包接收到恢复钱包指令时,从恢复钱包指令中获取助记码数量;
[0175] 步骤203:硬件钱包判断助记码数量是否符合预设要求,是则执行步骤204,否则报错,返回步骤201;
[0176] 可选的,本实施例中的预设要求为12或18或24个;
[0177] 步骤204:硬件钱包根据助记码数量生成助记码索引列表;
[0178] 本实施例中的助记码索引列表中包含按序存储的列表单元,列表单元中包括索引;
[0179] 例如助记码数量为18,生成的助记码索引列表如下表:
[0180] 索引 1 2 3 ...... 16 17 18助记码              
[0181] 步骤205:硬件钱包将助记码索引列表中的包括索引和对应的助记码的列表单元随机重新排列;
[0182] 例如,重新排列后的助记码索引列表如下表:
[0183]索引 11 7 15 ...... 3 8 2
助记码              
[0184] 步骤206:硬件钱包显示助记码索引列表,并给上位机发送输入助记码请求;
[0185] 在本实施例中,上位机接收到输入助记码请求后提醒用户输入与助记码索引列表中各个索引对应的助记码,并以空格间隔区分,然后上位机将输入的所有助记码发送给硬
件钱包;具体实现方式可包括:
[0186] 上位机接收到输入助记码请求后弹出软键盘(9宫格的英文输入键盘或全键盘),用户通过软键盘输入与每个索引对应的助记码,并以空格间隔区分,然后上位机将所有的
助记码发送给硬件钱包;
[0187] 步骤207:当硬件钱包接收到上位机发送的助记码时,依次根据每个索引将对应的助记码保存在助记码索引列表的对应列表单元中;
[0188] 例如,经过步骤207之后的助记码索引列表如下表:
[0189]索引 11 7 15 ...... 3 8 2
助记码 ghy jub yfg   qwd ygp wet
[0190] 步骤208:硬件钱包将助记码索引列表中的列表单元按序重新排列;顺序取出每个列表单元中的助记码;
[0191] 重新排列后的助记码索引列表如下表:
[0192]索引 1 2 3 ...... 16 17 18
助记码 sdf wet qwd   huj tkl gnh
[0193] 步骤209:硬件钱包在助记短语预设词典中查找与各个助记码对应的助记码标识,将查找到的助记码标识顺序拼接得到助记短语标识;
[0194] 步骤210:硬件钱包根据助记短语标识的长度计算密钥种子长度,根据密钥种子长度从助记短语标识的起始位置开始截取对应长度的数据得到密钥种子;
[0195] 步骤211:硬件钱包将助记短语标识中除密钥种子外的其他数据作为第二校验值;使用第一预设算法对密钥种子进行计算得到第一计算结果,从第一计算结果起始位置截取
与第二校验值等长的数据得到第一校验值;
[0196] 步骤212:硬件钱包判断第一校验值与第二校验值是否匹配,是则执行步骤213,否则给上位机返回恢复钱包失败信息,返回步骤101;
[0197] 步骤213:硬件钱包根据密钥种子通过第二预设算法生成主密钥并保存在安全存储区中;
[0198] 步骤214:硬件钱包将状态设置为已初始化,并向上位机返回恢复钱包成功信息;
[0199] 在本实施例中,上位机接收到恢复钱包成功信息之后显示恢复钱包成功。
[0200] 本发明实施例方法是当硬件钱包必须进行恢复钱包操作时,硬件钱包屏幕上随机显示需要用户输入的助记码编号,用户在上位机输入一个助记码,该助记码发送到硬件钱
包设备中,设备将该助记码对应存入设备屏幕上显示的编号的索引中。同时,硬件钱包设备
会根据用户的助记码数量,随机从助记码表中选择助记码,显示在设备屏幕上,让用户进行
输入。该方式使键盘监控或屏幕监控只能获取到一些随机排列的独立助记码,而无法将其
正确组成用户的助记码,有效防止助记码被截取,保证用户信息安全。
[0201] 实施例四
[0202] 本发明实施例四提供一种安全的恢复硬件钱包主密钥的实现装置,如图4所示,包括:
[0203] 第一生成模块41,用于当接收到上位机发送的恢复钱包指令时,根据恢复钱包指令中的助记码数量生成助记码索引列表,助记码索引列表中包含按序存储的列表单元,列
表单元中包括索引;
[0204] 第一生成模块41,包括:
[0205] 计算生成单元,用于当接收到上位机发送的恢复钱包指令时,根据恢复钱包指令中的助记码数量和预设数量计算得到需补足助记码数量,根据需补足助记码数量从助记码
表中选取对应个数的助记码;生成预设数量的编号作为索引,根据索引生成助记码索引列
表;
[0206] 第一保存单元,用于将计算生成单元选取的助记码保存在助记码索引列表的列表单元中;列表单元中的索引和助记码一一对应;
[0207] 在本实施例中,第一保存单元具体用于按正序将选取的助记码保存在助记码索引列表的列表单元中,或按倒序将选取的助记码保存在助记码索引列表的列表单元中,或按
间隔的方式将选取的助记码保存在助记码索引列表的列表单元中;列表单元中的索引和助
记码一一对应;
[0208] 打乱排列单元,用于将助记码索引列表中包括索引和对应助记码的列表单元的顺序打乱并随机重新排列;
[0209] 第一排列模块42,用于将第一生成模块41生成的助记码索引列表中的列表单元随机重新排列;
[0210] 显示发送模块43,用于显示助记码索引列表中的索引并给上位机发送输入助记码请求;
[0211] 接收保存模块44,用于当接收到上位机发送的助记码时,根据当前索引将对应的助记码保存到助记码索引列表的相应列表单元中;
[0212] 第一提取模块45,用于按照索引大小按序依次取出助记码索引列表的每个列表单元中的助记码;
[0213] 在本实施例中,第一提取模块45具体用于将助记码索引列表中的列表单元按序重新排列;顺序取出每个列表单元中的助记码;
[0214] 查找拼接模块46,用于在助记短语预设词典中查找与第一提取模块45取出的各个助记码对应的助记码标识,如找到则将查找到的助记码标识顺序拼接得到助记短语标识,
触发生成保存模块47,如未找到则报错;
[0215] 生成保存模块47,用于根据助记短语标识生成主密钥并保存。
[0216] 具体的,在本实施例中,生成保存模块47包括:
[0217] 第一计算截取单元,用于根据助记短语标识的长度计算密钥种子长度,根据密钥种子长度从助记短语标识的起始位置开始截取对应长度的数据得到密钥种子;
[0218] 第二计算截取单元,用于将助记短语标识中除密钥种子外的其他数据作为第二校验值;使用第一预设算法对密钥种子进行计算得到第一计算结果,从第一计算结果起始位
置截取与第二校验值等长的数据得到第一校验值;
[0219] 第一判断单元,用于判断第一校验值与第二校验值是否匹配,是则触发生成保存单元,否则给上位机返回恢复钱包失败信息;
[0220] 生成保存单元,用于根据密钥种子通过第二预设算法生成主密钥并保存在安全存储区中。
[0221] 本实施例的装置还包括:设置模块,用于在生成保存模块47保存主密钥之后将状态设置为已初始化,并向上位机返回恢复钱包成功信息。
[0222] 本实施例的方法还包括:获取判断模块,用于当接收到上位机发送的恢复钱包指令时,从恢复钱包指令中获取助记码数量,并判断助记码数量是否符合预设要求,是则触发
第一生成模块41,否则报错。
[0223] 在本实施例中,显示发送模块可以一次显示全部索引,用户输入对应的全部助记(每个助记码之间可以用空格进行区分)码发送给硬件钱包,接收保存单元根据索引保存对
应的助记码在助记码索引列表的列表单元中;显示发送单元也可以一次只显示一个索引,
用户每次输入一个对应的助记码给硬件钱包来保存进行实现;
[0224] 如硬件钱包一次显示全部索引,则显示发送模块43具体用于显示助记码索引列表中的所有索引并给上位机发送输入助记码请求。
[0225] 相应的,接收保存模块44具体用于接收上位机发送的所有助记码,并依次根据每个索引将对应的助记码保存在助记码索引列表的列表单元中。
[0226] 如硬件钱包一次显示一个索引,则显示发送模块43具体用于显示助记码索引列表中的一个无对应助记码的索引并给上位机发送输入助记码请求。
[0227] 相应的,接收保存模块44包括:
[0228] 第一接收保存单元,用于接收上位机发送的单个助记码,将接收到的助记码保存在助记码索引列表的对应列表单元中;
[0229] 第二判断单元,用于判断助记码索引列表中的索引是否均有对应的助记码,是则触发第一提取模块45,否则触发显示发送模块43。
[0230] 如本实施例中在第一生成模块41中生成的助记码索引列表中的已有部分助记码,显示发送模块43包括第一作为单元、第三判断单元、第一显示发送单元、第二显示发送单
元,接收保存模块44包括第二接收保存单元、接收判断单元、第四判断单元、第二作为单元;
[0231] 第一作为单元,用于将重新排列的助记码索引列表中的第一个索引作为当前索引;
[0232] 第三判断单元,用于判断当前索引对应的助记码是否为空,是则触发第一显示发送单元,否则触发第二显示发送单元;
[0233] 第一显示发送单元,用于显示当前索引,并向上位机发送输入助记码请求;
[0234] 第二接收保存单元,用于接收上位机发送的助记码并将助记码填入助记码索引列表中对应于当前索引的列表单元中,触发第四判断单元;
[0235] 第二显示发送单元,用于显示当前索引对应的助记码,并向上位机发送输入助记码请求;
[0236] 接收判断单元,用于接收上位机发送的助记码,并判断接收到的助记码与助记码索引列表中的与当前索引对应的助记码是否一致,是触发第四判断单元,否则提示输入助
记码错误,触发打乱排列单元;
[0237] 第四判断单元,用于判断重新排列后的助记码索引列表中的所有索引是否均有对应的助记码,是则触发第一提取模块45,否则触发第二作为单元;
[0238] 第二作为单元,用于将重新排列后的助记码索引列表中的下一个索引作为当前索引,触发第三判断单元。
[0239] 可选的,接收保存模块44还包括:更新判断单元,用于在接收判断单元判断为否时更新输错次数,判断输错次数是否等于预设值,是则报错,结束,否则触发打乱排列单元。
[0240] 以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明公开的技术范围内,可轻易想到的变化或替换,
都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围
为准。