制作助记词

回复 星标
更多

制作助记词

第一步,我们需要用到骰子和纸笔。

一共掷256次骰子,掷到1,2,3记录为0,掷到4,5,6记录为1,最终得到256位二进制数。

或者,利用进制转换工具,掷99次,把得到的记录作为六进制数据,然后转换为二进制,就可以得到一个256位的二进制数。

256位二进制:1100 0011 0110 0100 0001 1111 1000 0101 0100 0100 1101 0111 1100 0000 0010 1111 0011 0101 1000 0000 1011 0000 0111 1100 0000 1111 1001 1000 1000 0111 1111 0000 1100 0110 1010 0010 0111 1111 1111 0101 1010 1011 0001 1101 0100 1010 0011 1110 0010 1001 1100 1010 1111 0001 1001 0111 1100 1111 1100 0010 1001 1001 1010 1110 

操作过程中要确保骰子在空中得到足够的翻转,并且避免总是从骰子的特定面朝上进行投掷。

当然,如果你坚持要用筛盅,掌柜也不会拦着你。

第二步,我们需要用到SHA256算法工具。

1. 使用SHA256工具获取256位二进制的Hash值(转换为二进制,按Byte分组),取前面8位加到256位二进制后面,得到264位二进制数。

432144

264位二进制:1100 0011 0110 0100 0001 1111 1000 0101 0100 0100 1101 0111 1100 0000 0010 1111 0011 0101 1000 0000 1011 0000 0111 1100 0000 1111 1001 1000 1000 0111 1111 0000 1100 0110 1010 0010 0111 1111 1111 0101 1010 1011 0001 1101 0100 1010 0011 1110 0010 1001 1100 1010 1111 0001 1001 0111 1100 1111 1100 0010 1001 1001 1010 1110 0111 1111

2. 将264位二进制分成24组11位的二进制

432144

第三步,我们需要用到进制转换工具2048助记词表

根据上面得到的24组11位二进制数,我们要在2048词表里找到对应的24个单词。

但是,二进制如何跟单词对应起来呢?

1. 我们将词表的2048个单词按a-z字母排序后标上序号,从“0”到“2047”。

432144

2. 最大的序号“2047”用二进制表示刚好是11位“11111111111”。所以词表里的每一个词,我们都可以根据它的序号对应一个11位的二进制数。对于转换二进制后不满11位的,我们在它的二进制数前面补“0”,不影响数值大小,同时还满足长度要求11位。

比如,【dice】是词表的第492个单词,序号则为“491”,它对应的二进制是9位:“111101011”,我们把它补齐11位:“00111101011”。

432144

432144

为减少工作量,我们直接将24组11位二进制用离线进制转换工具转换成十进制,然后按照十进制数找到对应序号的单词。

以第一组11位二进制“11000011011”举例,转化为十进制,表示为“1563”。由于我们定义的序号是从0到2047,所以,序号“1563”实际对应的是词表中第1564个单词【sell】。

432144

432144

按照上面的方法,我们可以得到24组11位二进制数对应的24个单词:

432144

新窗口打开 关闭