xml文档中hex值的问题

我有简单的C#函数,它接受一个字符串编码并返回它:

public static string EncodeString(string input) { byte[] bChiperText = null; RijndaelManaged rp = new RijndaelManaged(); rp.Key = UTF8Encoding.UTF8.GetBytes("!Lb!&*W_4Xc54_0W"); rp.IV = UTF8Encoding.UTF8.GetBytes("6&^Fi6s5SAKS_Ax6"); ICryptoTransform re = rp.CreateEncryptor(); byte[] bClearText = UTF8Encoding.UTF8.GetBytes(input); MemoryStream Mstm = new MemoryStream(); CryptoStream Cstm = new CryptoStream(Mstm, re, CryptoStreamMode.Write); Cstm.Write(bClearText, 0, bClearText.Length); Cstm.FlushFinalBlock(); bChiperText = Mstm.ToArray(); Cstm.Close(); Mstm.Close(); return System.Text.ASCIIEncoding.ASCII.GetString(bChiperText); } 

用参数“hello”调用这个函数后,我得到这样的xml文件:

      

Everithing很好,但是当我在visual studio 2010中打开xml文件时,我会收到如下警告:

错误1字符”,hex值0x13在XML文档中是非法的。

任何人都可以告诉我做错了什么?我可以忽略这些警告吗?
谢谢

这就是问题:

 return System.Text.ASCIIEncoding.ASCII.GetString(bChiperText); 

您将任意二进制数据转换为文本,只需将其视为ASCII。 不是。 不要那样做。

最安全的方法是使用Base64:

 return Convert.ToBase64String(bChiperText); 

当然,您的客户端需要在还原时执行相同操作,例如使用Convert.FromBase64String