我有这个简单的Xml文件<Root> <Licence Name="My name" Age="23"/></Root>在加密和解密过程中,我使用的是ToBase64String()和FromBase64String()方法,但是它无法正常工作,当我尝试解密文件时,限制了我的License元素。这是加密和解密后的结果:<Root>&lt;Licence Name="My name" Age="23" /&gt;</Root>这是我的代码//Encryptprivate void bnEncrypt_Click(object sender, EventArgs e){ var xDoc = XElement.Load(@"C:\Opticien\Lic.xml"); var data = xDoc.Element("Licence").ToString(); var dataByte = Encoding.UTF8.GetBytes(data); var dataEncrypted = Convert.ToBase64String(dataByte); xDoc.SetValue(dataEncrypted); xDoc.Save(@"C:\Opticien\Lic.xml"); memoEdit1.Text = xDoc.ToString();}//Decryptprivate void bnDecrypt_Click(object sender, EventArgs e){ var xDoc = XElement.Load(@"C:\Opticien\Lic.xml"); var data = xDoc.Value; var dataByte = Convert.FromBase64String(data); var dataDecrypted = Encoding.UTF8.GetString(dataByte); xDoc.SetValue(dataDecrypted); xDoc.Save(@"C:\Opticien\Lic.xml"); memoEdit1.Text = xDoc.ToString();} (adsbygoogle = window.adsbygoogle || []).push({}); 最佳答案 您正在xDoc.SetValue(dataDecrypted);中使用SetValue。这将设置<Root>节点的文本,转义任何特殊字符,例如''字符。而是使用XElement.Parse()在已解码(而不是已解密)字符串中创建一个新的XElement。 (adsbygoogle = window.adsbygoogle || []).push({});
10-04 17:32