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

我从不使用加密库,但我想用私钥加密字符串并通过公钥解密.如何在c#中实现这一点.请帮我处理小代码片段.
谢谢
最佳答案
AFAIK,虽然技术上公钥和私钥之间的数学没有区别,但出于安全考虑,您需要始终如一地使用它们.

您要求使用私钥加密并使用公钥解密.这通常是错误的方式.如果你想走这个方向,它通常是一个叫做“数字签名”的操作.

如果您使用私钥进行签名,以便公钥可以反转,那么这并不是一个秘密.我假设您只是尝试将邮件验证为来自发件人的合法邮件.您需要的是数字签名 – 仍然使用公钥 – 私钥(或“非对称”)密钥执行.

使用数字签名,消息本身并不是秘密(没有必要,因为任何拥有公钥的人都可以解密它)但是伴随着基于消息的附加数据,这些数据可以使用公钥进行验证并且只能被计算出来由具有匹配私钥的人.

它看起来像下面这样.现在你只需弄清楚你将获得钥匙的位置.

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# – 如何使用私钥加密字符串并使用公钥解密? - 代码日志