gpt4 book ai didi

c# - RSACryptoServiceProvider 使用自己的公钥和私钥加密和解密

转载 作者:行者123 更新时间:2023-11-30 14:26:44 26 4
gpt4 key购买 nike

有人告诉我,对于非对称加密,您可以使用公钥加密明文并使用私钥解密。所以我尝试了以下方法:

    static void Main(string[] args)
{
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
string pubkey = rsa.ToXmlString(false);
string prikey = rsa.ToXmlString(true);

byte[] someThing = RSAEncrypt(Encoding.Unicode.GetBytes("Hello World"), pubkey);
byte[] anotherThing = RSADecrypt(someThing, prikey);

Console.WriteLine(Convert.ToBase64String(anotherThing));
}

加密和解密函数

    public static byte[] RSAEncrypt(byte[] plaintext, string destKey)
{
byte[] encryptedData;
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
rsa.FromXmlString(destKey);
encryptedData = rsa.Encrypt(plaintext, true);
rsa.Dispose();
return encryptedData;
}

public static byte[] RSADecrypt(byte[] ciphertext, string srcKey)
{
byte[] decryptedData;
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
rsa.FromXmlString(srcKey);
decryptedData = rsa.Decrypt(ciphertext, true);
rsa.Dispose();
return decryptedData;
}

我希望控制台显示 Hello World,但它显示此 SABlAGwAbABvACAAVwBvAHIAbABkAA==。我是否错误地使用了 RSACryptoServiceProvider?

最佳答案

它是base 64,解码字符串,你会得到“Hello world”。

关于c# - RSACryptoServiceProvider 使用自己的公钥和私钥加密和解密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34613479/

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