gpt4 book ai didi

java - 在 Java/Kotlin 中生成 ed25519 key

转载 作者:行者123 更新时间:2023-12-02 13:34:43 25 4
gpt4 key购买 nike

关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。












想改进这个问题?将问题更新为 on-topic对于堆栈溢出。

2年前关闭。




Improve this question




我希望在 java/kotlin 中生成 ed25519 key 。 key 对应该是确定性的,因为如果可以提供在生成过程中使用的一些种子信息,他们可以再次生成相同的 key 对。

我知道可以使用助记符来实现这一点。请告诉我如何处理这个问题。我正在寻找一个可以帮助我在 java 中实现这一目标的知名库。

最佳答案

您应该使用 libsodium ,这里是 link到文档。
libsodiumDJB 中维护最积极的实现的NaCl ,因此如果您使用 ed25519curve25519椭圆曲线加密,你应该使用 libsodium .

有一个number Java 中的绑定(bind)数/Kotlin .

它非常易于使用且安全,例如,它在恒定时间内执行标量乘法。

为了回答您关于确定性的问题,libsodium 提供了一种从种子生成确定性 key 的机制。请注意,您需要确保您的种子具有足够的熵以确保安全。

您应该调用 int crypto_sign_seed_keypair(unsigned char *pk, unsigned char *sk, const unsigned char *seed);generate来自种子的 ed25519 key 对。

Here是一个在 Java 中提供与该函数的绑定(bind)的库:

    /**
* 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);

关于java - 在 Java/Kotlin 中生成 ed25519 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59423488/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com