gpt4 book ai didi

c# - 在 C# 中使用 RSACryptoServiceProvider 查找公钥和私钥

转载 作者:太空狗 更新时间:2023-10-29 21:23:00 24 4
gpt4 key购买 nike

我有以下代码。

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

当我使用 RSAEncrypt 方法时,它采用参数“RSAKeyInfo”(用于加密的公钥和用于解密的私钥)。

如何获取此方法用于加密和解密的私钥和公钥的值。

谢谢,

最佳答案

您需要使用 RSA.ToXmlString

下面的代码使用两个不同的 RSA 实例和一个包含公钥和私钥的共享字符串。要只获取公钥,使用一个false参数,true参数将返回公钥+私钥。

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

}
}

关于c# - 在 C# 中使用 RSACryptoServiceProvider 查找公钥和私钥,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16711840/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com