gpt4 book ai didi

c# - C# 中的 1024 位 Diffie-Hellman

转载 作者:太空狗 更新时间:2023-10-29 23:33:33 25 4
gpt4 key购买 nike

所以我正在从事一个项目,将 C# 客户端与现有的服务器技术连接起来。其中一项要求是使用 Diffie-Hellman 进行 key 交换。

我们已经知道公钥 P 和 G,我需要生成一个 1024 位的公钥发送到服务器。

以下是在带有 OpenSSL 的 C++ 中的服务器端使用的。目前我在通过 P/Invoke 调用的 native DLL 中使用相同的代码,它也能正常工作。如果可能的话,我更愿意消除对 native DLL 的依赖。

char publicKey[128];
char P[128]; //this is set to a static 128-byte value, omitting for brevity
unsigned long G = 2;

DH* dh = DH_new();
dh->p = BN_new();
dh->g = BN_new();

BN_set_word(dh->g, G);
BN_bin2bn(P, 128, dh->p);
if(DH_generate_key(dh))
{
BN_bn2bin(dh->pub_key, publicKey);
}

这会生成一个 1024 位的公钥。

我试过在 BouncyCaSTLe 中使用 DH 类,但出于某种原因我无法让它给我一个 1024 位 key ,它想给我一个 960 位 key 。可能是因为我真的不知道自己在做什么。我找不到太多关于应该如何使用这些类的实际解释。

是否可以使用 BouncyCaSTLe DH 类来像上面发布的 OpenSSL DH 代码一样工作?如果没有,是否有其他 C# 实现会更好?

最佳答案

这是一个工作代码示例 + CodeProject 上的一篇文章,评分很高:

http://www.codeproject.com/Articles/24632/Shared-Key-Generation-using-Diffie-Hellman

关于c# - C# 中的 1024 位 Diffie-Hellman,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9483897/

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