crypto 乱码_我这里有个加密解密算法,但是解密后中文出现了乱码。求高手指教: 我的代码如下:...

在使用RSA加密解密过程中遇到中文乱码问题。代码中展示了RSA加密和解密的方法,但在解密后,中文字符无法正常显示。可能的原因是使用了ASCII编码而不是UTF-8。为解决此问题,可以尝试将解密后的字节转换为UTF-8字符串。
摘要由CSDN通过智能技术生成

publicstringRSAEncrypt(stringencryptString){CspParameterscsp=newCspParameters();csp.KeyContainerName="whaben";RSACryptoServiceProviderRSAProvider=newRSACryptoServiceProvi...

public string RSAEncrypt(string encryptString)

{

CspParameters csp = new CspParameters();

csp.KeyContainerName = "whaben";

RSACryptoServiceProvider RSAProvider = new RSACryptoServiceProvider(csp);

byte[] encryptBytes = RSAProvider.Encrypt(ASCIIEncoding.ASCII.GetBytes(encryptString), true);

string str = "";

foreach (byte b in encryptBytes)

{

str = str + string.Format("{0:x2}", b);

}

return str;

}

//解密算法

public string RSADecrypt(string decryptString)

{

CspParameters csp = new CspParameters();

csp.KeyContainerName = "whaben";

RSACryptoServiceProvider RSAProvider = new RSACryptoServiceProvider(csp);

int length = (decryptString.Length / 2);

byte[] decryptBytes = new byte[length];

for (int index = 0; index < length; index++)

{

string substring = decryptString.Substring(index * 2, 2);

decryptBytes[index] = Convert.ToByte(substring, 16);

}

decryptBytes = RSAProvider.Decrypt(decryptBytes, true);

return ASCIIEncoding.ASCII.GetString(decryptBytes);

// return System.Text.Encoding.UTF8.GetString(decryptBytes);

}

展开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值