如何在C#中加密/解密阿拉伯语文本
public static string Encrypt(string pDataToEncrypt) { ASCIIEncoding textConverter = new ASCIIEncoding(); RijndaelManaged myRijndael = new RijndaelManaged(); byte[] toEncrypt; ICryptoTransform encryptor = myRijndael.CreateEncryptor(key, IV); MemoryStream msEncrypt = new MemoryStream(); CryptoStream csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write); toEncrypt = textConverter.GetBytes(pDataToEncrypt); csEncrypt.Write(toEncrypt, 0, toEncrypt.Length); csEncrypt.FlushFinalBlock(); return Convert.ToBase64String(msEncrypt.GetBuffer(), 0, (int)msEncrypt.Length); } public static string Decrypt(string pDataToDecrypt) { RijndaelManaged myRijndael = new RijndaelManaged(); byte[] fromEncrypt; //Encoding asciiEncoding = Encoding.ASCII; fromEncrypt = Convert.FromBase64String(pDataToDecrypt); ICryptoTransform decryptor = myRijndael.CreateDecryptor(key, IV); MemoryStream msDecrypt = new MemoryStream(fromEncrypt, 0, fromEncrypt.Length); CryptoStream csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read); StreamReader sr = new StreamReader(csDecrypt); return sr.ReadToEnd(); }
当我尝试加密其返回"????" 问号
提前致谢
使用
UnicodeEncoding()
代替
ASCIIEncoding()