gpt4 book ai didi

c# - 如何用私钥加密字符串并用公钥解密?

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

我从不使用加密库,但我想用私钥加密字符串并用公钥解密。如何在 C# 中实现这一点。请用小代码片段帮助我。谢谢

最佳答案

据我所知,虽然从技术上讲公钥和私钥在数学上没有区别,但出于安全原因,您需要始终如一地使用它们。

您要求使用私钥加密并使用公钥解密。这通常是错误的方法。如果要朝这个方向发展,通常是一种叫做“数字签名”的操作。

如果您使用私钥签名,使其可以被公钥 逆转,那么它就不是真正的 secret 。我假设您只是想验证邮件是来自发件人的合法邮件。您需要的是数字签名 - 仍然使用公钥私钥(或“非对称”) key 执行。

有了数字签名,消息本身就不是 secret 的(没有必要,因为任何拥有公钥的人都可以解密它)但是伴随着基于消息的附加数据,可以使用公钥验证并且可以仅由具有匹配私钥的人计算。

它看起来像下面这样。现在您只需要弄清楚从哪里获得 key 即可。

static byte[] GenerateDigitalSignature(byte[] data, RSAParameters asymmetricKey)
{
using (var rcsp = new RSACryptoServiceProvider())
using (var cp = new SHA1CryptoServiceProvider())
{
rcsp.ImportParameters(asymmetricKey);

return rcsp.SignData(data, cp);
}
}

关于c# - 如何用私钥加密字符串并用公钥解密?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4828803/

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