4 个版本
0.1.3 | 2023 年 10 月 5 日 |
---|---|
0.1.2 | 2023 年 10 月 3 日 |
0.1.1 | 2022 年 4 月 1 日 |
0.1.0 | 2022 年 3 月 24 日 |
#1553 in 魔法豆
238 每月下载量
在 2 个包中使用(通过 cardano-sdk)
300KB
12K SLoC
BIP39 字典
BIP39 字典编码/解码
BIP39 字典为多种语言提供一组 2048 个顺序特定的单词。
每个单词代表一个 11 位索引,这些索引组合在一起,通过添加一些校验位(作为填充)来表示二进制编码,这允许编码任何任意数据流。
此包可以用于生成标准的 BIP39 数据,但也提供了放松标准以获得更多功能的能力。
校验和的最大长度允许为 32 字节(256 位),目前使用的校验和始终是 SHA2-256。在未来的某个时刻,这也可能被定制化。
以下关系必须成立才能进行有效的解码/编码
length_bytes(data) * 8 + checksum = number_of(words) * 11
标准 BIP39 编码使用以下值
单词 | 比特 | 完整字节 | 校验位 |
---|---|---|---|
12 | 132 | 16 (128) | 4 |
15 | 165 | 20 (160) | 5 |
18 | 198 | 24 (192) | 6 |
21 | 231 | 28 (224) | 7 |
24 | 264 | 32 (256) | 8 |
但通过放松 BIP39 标准,我们可以使校验和可变,并使所有单词组合有效
单词 | 比特 | 完整字节 | 剩余位 | 标准 |
---|---|---|---|---|
1 | 11 | 1 (8) | 3 | 否 |
2 | 22 | 2 (16) | 6 | 否 |
3 | 33 | 4 (32) | 1 | 否 |
4 | 44 | 5 (40) | 4 | 否 |
5 | 55 | 6 (48) | 7 | 否 |
6 | 66 | 8 (64) | 2 | 否 |
7 | 77 | 9 (72) | 5 | 否 |
8 | 88 | 11 (88) | 0 | 否 |
9 | 99 | 12 (96) | 3 | 是 |
10 | 110 | 13 (104) | 6 | 否 |
11 | 121 | 15 (120) | 1 | 否 |
12 | 132 | 16 (128) | 4 | 是 |
... | ... | ... | ... | 否 |
... | ... | ... | ... | 否 |
15 | 165 | 20 (160) | 5 | 是 |
... | ... | ... | ... | 否 |
... | ... | ... | ... | 否 |
18 | 198 | 24 (192) | 6 | 是 |
... | ... | ... | ... | 否 |
... | ... | ... | ... | 否 |
21 | 231 | 28 (224) | 7 | 是 |
... | ... | ... | ... | 否 |
... | ... | ... | ... | 否 |
24 | 264 | 32 (256) | 8 | 是 |
24 | 264 | 33 (264) | 0 | 否 |
... | ... | ... | ... | 否 |
... | ... | ... | ... | 否 |
27 | 297 | 37 (296) | 1 | 否 |
谢谢
此包受到了 rust-cardano bip39 实现,以及字典数据和测试向量的影响。
依赖项
~755KB
~15K SLoC