.net – 如何使用私钥加密并使用c#RSA中的公钥解密

我找到了几个解决方案,我可以使用.Net RSA Provider使用公钥加密消息,并使用私钥解密.

但我想要的是使用私钥加密和使用公钥解密.

我希望将公钥存储在我的应用程序中并使用私钥加密许可证,例如在我的开发机器上,将其发送到应用程序并使用公钥解密信息.

我怎样才能做到这一点?

最佳答案
您可以使用签名生成,其中私钥用于生成签名,以验证您的消息是否可信.

// Create message and signature on your end
string message = "Here is the license message";

var converter = new ASCIIEncoding();
byte[] plainText = converter.GetBytes(message);

var rsaWrite = new RSACryptoServiceProvider();
var privateParams = rsaWrite.ExportParameters(true);

// Generate the public key / these can be sent to the user.
var publicParams = rsaWrite.ExportParameters(false);

byte[] signature =
    rsaWrite.SignData(plainText, new SHA1CryptoServiceProvider());

// Verify from the user's side. Note that only the public parameters
// are needed.
var rsaRead = new RSACryptoServiceProvider();
rsaRead.ImportParameters(publicParams);
if (rsaRead.VerifyData(plainText,
                       new SHA1CryptoServiceProvider(),
                       signature))
{
    Console.WriteLine("Verified!");
}
else
{
    Console.WriteLine("NOT verified!");
}

你可以从HERE获得进一步的帮助

转载注明原文:.net – 如何使用私钥加密并使用c#RSA中的公钥解密 - 代码日志