我找到了几个解决方案,可以使用.Net RSA提供程序使用公钥加密消息,并使用私钥进行解密。
但是我想要的是使用私钥加密,用公钥解密。
我想在我的应用程序中存储公钥,在我的开发计算机上使用私钥加密许可证,将其发送到应用程序并使用公钥解密信息。
我该如何实现?
我找到了几个解决方案,可以使用.Net RSA提供程序使用公钥加密消息,并使用私钥进行解密。
但是我想要的是使用私钥加密,用公钥解密。
我想在我的应用程序中存储公钥,在我的开发计算机上使用私钥加密许可证,将其发送到应用程序并使用公钥解密信息。
我该如何实现?
您可以使用签名生成,其中私钥用于生成验证您消息真实性的签名。
// 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!");
}
你可以从这里寻求更多帮助。