我有以下代码.
RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();
//Save the public key information to an RSAParameters structure.
RSAParameters RSAKeyInfo = RSA.ExportParameters(true);
byte[] toEncryptData = Encoding.ASCII.GetBytes("hello world");
byte[] encryptedRSA = RSAEncrypt(toEncryptData, RSAKeyInfo, false);
string EncryptedResult = System.Text.Encoding.Default.GetString(encryptedRSA);
byte[] decryptedRSA = RSADecrypt(encryptedRSA, RSAKeyInfo, false);
string originalResult = System.Text.Encoding.Default.GetString(decryptedRSA);
return userDetails.ToString();
Run Code Online (Sandbox Code Playgroud)
当我使用RSAEncrypt方法时,它采用参数"RSAKeyInfo"(用于加密的公钥和用于解密的私钥).
如何获取私钥和公钥的值,此方法用于加密和解密.
谢谢,
你需要使用 RSA.ToXmlString
下面的代码使用两个不同的RSA实例,其中包含公钥和私钥的共享字符串.要获取只有公钥,请使用false参数,true参数将返回public + private键.
class Program
{
public static void Main(string[] args)
{
//Encrypt and export public and private keys
var rsa1 = new RSACryptoServiceProvider();
string publicPrivateXml = rsa1.ToXmlString(true); // <<<<<<< HERE
byte[] toEncryptData = Encoding.ASCII.GetBytes("hello world");
byte[] encryptedRSA = rsa1.Encrypt(toEncryptData, false);
string EncryptedResult = Encoding.Default.GetString(encryptedRSA);
//Decrypt using exported keys
var rsa2 = new RSACryptoServiceProvider();
rsa2.FromXmlString(publicPrivateXml);
byte[] decryptedRSA = rsa2.Decrypt(encryptedRSA, false);
string originalResult = Encoding.Default.GetString(decryptedRSA);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12255 次 |
| 最近记录: |