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

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

AFAIK,虽然公钥和私钥之间的数学技术没有区别,但出于安全考虑,您需要始终如一地使用它们。

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

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

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

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

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); } }