助記詞 其實 就是 將 128bits 的 seed 補位成 132bits 的數值,而後 平均 拆分紅 12個 數值,最後到 助記詞列表中 根據下標 獲取對應的 12個 單詞 組成。git
bip39的助記詞列表:https://github.com/bitcoinjs/bip39/blob/master/wordlists/english.jsongithub
生成過程:
1.隨機生成 128 bits 的 seed (需是32的倍數)
2.將 seed 進行hash256運算,獲取hash值 開頭的 4個 bits,與 seed 組成一個組新數值
3.以11bits爲單位,拆分 上組新數值,每 11bits 個數值 轉成一個10進制數
4.用這個十進制數 做爲 助記詞單詞數組 的下標,獲取 對應的 一個單詞做爲 助記詞
5.一共12組11bits數,因此 生成 12個 單詞json
圖解(來源百度):
數組