如何将字符串压缩和加密到另一个字符串?

时间:2011-12-28 07:02:22

标签: c# .net string encryption compression

我正在处理的程序将当前状态的快照保存到xml文件中。我想将它存储在数据库中(作为blob)而不是xml。

首先,我认为xml文件非常耗费空间和冗余,因此我们希望在存储到数据库之前以某种方式压缩字符串。此外,我们还想介绍一个简单的加密技术,以便人们在没有至少一个简单的密钥/密码的情况下无法弄清楚它的含义。

请注意,我想将它作为blob存储在数据库中,所以压缩它然后加密zip文件是不行的,我想。

我该怎么做呢?

2 个答案:

答案 0 :(得分:1)

首先,看看你的序列化机制。 XML的全部意义在于它是人类可读的。如果这不再是一个重要的目标,那么可能是时候看看更适合数据库存储的其他序列化技术(将XML压缩成二进制文件完全违背了它的要点:)

作为替代格式,BSON可能是一个不错的选择。

答案 1 :(得分:1)

使用DeflateStream压缩XML数据并将其输出写入MemoryStream。然后调用.ToArray()方法获取blob数据。您也可以使用类似的方式对.NET进行加密(当然在压缩之后)。如果您认为deflate不足以节省空间,请尝试使用此库:XWRT