从window.crpyto.subble.generateKey生成助记符短语



我正在开发基于web的端到端加密聊天网站。为此,我使用web加密api中提供的window.crypto.subtile.generateKey函数生成私钥。

我希望用户记住或存储我们在以太坊钱包中使用的助记符短语,而不是加密密钥。

有没有一种方法可以从window.crypto.subtle.generateKey函数生成的私钥生成助记符短语,或者我应该采用其他方法来实现这一点?

提前感谢

有没有办法从私钥生成助记符短语

情况正好相反。可以从每个助记符短语中确定一组私钥,但不能从私钥中确定助记符。


BIP-39是一种广泛使用的标准。尽管它最初是作为比特币改进协议引入的,但许多以太坊钱包也使用它。例如,您可以在这个包中找到它的JS实现。

注意:您正在查找函数mnemonicToSeed()mnemonicToSeedSync()。尽管乍一看entropyToMnemonic()可能会将私钥转换为短语,但事实并非如此——熵数只是单词在单词列表中的位置,而不是私钥字节

正如您所描述的,您想要的是将私钥编码为助记符。你完全可以,最简单的例子是:将密钥分成n位的块,并将每个块与由2^n个单词组成的单词列表相匹配。

你是否真的想把它用于你的整体目的是另一个问题。

我还想详细介绍一下海达的回答,起初我很困惑,但现在我明白了。

Petr使用了";私钥";在与问题不同的背景下。Petr指的是";私钥";就比特币协议而言,其中助记符不被用作私钥的编码,而是生成种子,然后该种子可以用于确定地生成任意数量的密钥(BIP-0032(,使得当使用相同的种子时可以重新生成这样生成的密钥,该种子又可以从助记符重新生成。在这个协议中,定义了助记码到种子,但没有定义助记码,因为协议从来没有这样做。它只根据熵生成助记符,然后根据助记符生成种子。

但在你的情况下,你可以简单地给它喂你的"私钥";(正如你所定义的(;熵";在entropyToMnemonic()函数中输入,它将为您提供";私钥";你想要的。不过,你仍然需要自己解码,因为BIP39包没有这个功能。