.net 2.0如何把MD5加密数据存入xml?如何解决“十六进制值 0x11)是无效的字符”的问题?

请各位帮忙解答。小弟正在尝试用XML做一个小网站,不用其他数据库。主要使用xmldocument来操作,一切都还正常,就是在存储用户密码的时候遇到了麻烦,想把密码做MD5加密存入,可是存入之后一直有错误,错误提示有十六进制非法字符,如何解决?

以下是存入加密数据的代码

XmlDocument doc = new XmlDocument();
doc.Load(Server.MapPath("~/user.xml"));
XmlNode nd=doc.SelectSingleNode("//user[@name='" + tbxUser.Text.Trim() + "']");
if (nd != null)
{
//nd.Attributes["pwd"].Value = db.md5str(str);
nd.InnerText = db.md5str(str);
doc.Save(Server.MapPath("~/user.xml"));
}
以下是加密的方法

public string md5str(string str)
{
byte[] wpd = Encoding.UTF8.GetBytes(str);
MD5 md5=new MD5CryptoServiceProvider();
string md5str = Encoding.UTF8.GetString(md5.ComputeHash(wpd));
return md5str;
}
插入的时候不会有错,可是插入之后,运行到doc.load()就出错了。错误提示:
“”(十六进制值 0x11)是无效的字符。

请各位帮忙解答如何解决该问题,或者帮我用.net 2.0写个完整的xml中插入和读取MD5加密数据的代码。谢谢。
运行有时候出错,有时候不出错。每次打开XML文件的时候,下边就会有个错误提示,就是说十六进制字符在xml中是非法的什么的。看着不爽,运行也不放心。

运行到doc.load()就出错了。错误提示:
“”(十六进制值 0x11)是无效的字符。

---------------------------------------------------------------
这种情况看应该是:XML文件有问题或路径不对
请君贴XML 济淼
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-03-15
<?xml version='1.0' encoding='utf-16' ?> 试试,百度查一下 c# xml 加载特殊字符
第2个回答  2012-03-19
还不如我拷贝一个给你 参考哈
相似回答