在Java/Kotlin中生成ed25519密钥
我希望在java/kotlin中生成ed25519密钥。密钥对应该是确定的,因为如果可以提供生成过程中使用的一些种子信息,它们可以再次生成相同的密钥对在Java/Kotlin中生成ed25519密钥,java,kotlin,cryptography,ecdsa,ed25519,Java,Kotlin,Cryptography,Ecdsa,Ed25519,我希望在java/kotlin中生成ed25519密钥。密钥对应该是确定的,因为如果可以提供生成过程中使用的一些种子信息,它们可以再次生成相同的密钥对 我知道用助记符可以做到这一点。请告诉我如何处理这个问题。我正在寻找一个知名的库,它可以帮助我在java中实现这一点。您应该使用libnaid,这里是文档的一个链接 libnaid是最积极维护的实现,因此,如果您使用的是ed25519或curve25519椭圆曲线密码,您应该使用libnaid Java/Kotlin中有大量绑定 它真的很容易使用而
我知道用助记符可以做到这一点。请告诉我如何处理这个问题。我正在寻找一个知名的库,它可以帮助我在java中实现这一点。您应该使用
libnaid
,这里是文档的一个链接
libnaid
是最积极维护的实现,因此,如果您使用的是ed25519
或curve25519
椭圆曲线密码,您应该使用libnaid
Java
/Kotlin
中有大量绑定
它真的很容易使用而且安全,例如,它在恒定时间内执行标量乘法
为了回答您关于确定性的问题,libnaude提供了一种从种子生成确定性密钥的机制。注意,你需要确保你的种子有足够的熵来保证安全
您应该调用int-crypto\u-sign\u-seed\u密钥对(unsigned char*pk、unsigned char*sk、const unsigned char*seed)代码>从种子到ed25519密钥对
是一个在Java中为该函数提供绑定的库:
/**
* Deterministically generate a public and secret key.
* Store the seed somewhere if you want to generate these
* keys again.
* @param publicKey Public key will be populated here of size {@link #PUBLICKEYBYTES}.
* @param secretKey Secret key will be populated here of size {@link #SECRETKEYBYTES}.
* @param seed A random seed of size {@link #SEEDBYTES}.
* @return True if generated successfully.
*/
boolean cryptoKxSeedKeypair(byte[] publicKey, byte[] secretKey, byte[] seed);
拜托,好朋友,图书馆的推荐是离题的。请投票结束而不是回答问题。注:我不一定同意这项政策。我理解他们为什么会这样,但我的经验是,他们的好处大于坏处。@JamesReinstateMonicaPolk-我理解,道歉:+1