c# - 以 Base64 编码写入 XML

标签 c# .net xml base64

在我提出有关存储数据的问题后,有人建议我可以使用 XML,然后通过使用 Base64 对其进行编码来混淆文件。很喜欢这个思路,用XML实现了我想要的,但是不知道怎么用Base64保存。到目前为止,这是我的代码:

XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;

XmlWriter write = XmlWriter.Create("C:\\Users\\Andy\\Desktop\\database.xml", settings);
write.WriteStartDocument();
write.WriteStartElement("Database");
write.WriteStartElement("Entry");
write.WriteAttributeString("key", "value");
write.WriteEndElement();
write.WriteEndElement();

write.Flush();
write.Close();

最佳答案

这样写:

var sb = new StringBuilder(); 
var settings = new XmlWriterSettings();
//..settings
using (var writer = XmlWriter.Create(sb, settings))
{
    //...
}
//http://stackoverflow.com/questions/1564718/using-stringwriter-for-xml-serialization
var encoding = new UnicodeEncoding(); 
string s = Convert.ToBase64String(encoding.GetBytes(sb.ToString()));

File.WriteAllText("c:\temp.txt", s);

阅读:

string readText = File.ReadAllText("c:\temp.txt");
byte[] toDecodeByte = Convert.FromBase64String(readText);

using (var stream = new MemoryStream(toDecodeByte))
{
    using (XmlReader reader = XmlReader.Create(stream))
    {
        //.. read your xml
    }
}

关于c# - 以 Base64 编码写入 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17835928/

相关文章:

c# - 反序列化到 List<string> 字段时出现 "Unexpected character encountered while parsing value: [."异常

c# - *.datasource 应该在版本控制中被忽略吗?

c# - 为什么 .NET 中的表达式类型允许从函数构造但不允许从函数转换?

c# - 如何获取Google+的帖子数据(点赞-分享-评论)?

.net - 在 Visual Studio 2022 中针对 .Net Framework 3.5 构建

.net - 基于声明的 wcf 服务出错 - 无法验证传入策略

xml - 区分 XML 的智能方法

c# - 没有用于 ASP.NET MVC 的 DI 容器的 Controller 的构造函数参数

java - XMLBeans - 如何处理几乎相同的遗留 XSD?

XML特有的错误语法?