开发者社区 问答 正文

在Java / Kotlin中生成分层确定性ed25519密钥

我正在寻找在java / kotlin中生成ed25519规范的高清密钥。我知道像stellar-hd-wallet这样的库在javascript中也做同样的事情。我正在使用bitcoinj以下方式生成新的助记符

```js

val params = TestNet3Params.get() val wallet = Wallet.createDeterministic(params, Script.ScriptType.P2PKH)

    val seed: DeterministicSeed = wallet.keyChainSeed
    println("mnemonicCode: "+ seed.mnemonicCode)
我想使用12个单词的助记符代码以确定性的方式生成一组ed25519密钥对。这可能使用bitcoinj吗?如果不能,您可以建议其他图书馆吗?

我尝试使用net.i2p.crypto:eddsa:0.3.0。但是我找不到实现相同目的的方法。(我知道该库仅用于生成随机密钥)。

展开
收起
几许相思几点泪 2019-12-16 20:32:51 1039 分享 版权
阿里云 AI 助理回答

在Java或Kotlin中生成ED25519 HD(分层确定性)密钥对,使用助记词类似于BIP39标准,bitcoinj库主要针对比特币的SECP256k1曲线,并不直接支持ED25519。对于ED25519和BIP39兼容的HD钱包功能,你可以考虑使用其他专门为此设计的库。

一个推荐的选择是Bip39Ed25519-HD-Key这两个库的组合来实现你的需求:

  1. Bip39: 用于生成和处理BIP39助记词。
  2. Ed25519-HD-Key: 支持ED25519密钥的分层确定性生成。

使用说明

Bip39

Bip39 是一个独立于bitcoinj的库,可以用来生成和验证BIP39助记词。

Ed25519-HD-Key

Ed25519-HD-Key 是一个实现了BIP32分层确定性密钥派生方案的库,专为ED25519曲线设计。

示例代码

首先,你需要添加这两个库到你的项目依赖中。如果你使用的是Maven或Gradle,可以从各自的仓库中找到对应的依赖声明并加入到你的构建文件中。

然后,你可以按照以下步骤操作:

  1. 生成BIP39助记词:使用Bip39库生成12个单词的助记词。
  2. 从助记词生成种子:利用助记词和密码(如果有)生成种子。
  3. 使用种子和路径派生ED25519密钥:将种子转换为适合Ed25519-HD-Key使用的格式,并指定派生路径(如m/44'/384'/0'/0/0)来生成ED25519密钥对。

注意,示例代码需要根据实际库的API进行调整,因为具体实现细节可能随时间变化。务必查看上述库的最新文档以获取准确的用法。

如果在阿里云环境中部署应用,确保这些第三方库与你的运行环境兼容,并遵循阿里云的安全最佳实践,特别是在处理密钥材料时。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答