Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将一个字符串压缩并加密为另一个字符串?_C#_.net_String_Encryption_Compression - Fatal编程技术网

C# 如何将一个字符串压缩并加密为另一个字符串?

C# 如何将一个字符串压缩并加密为另一个字符串?,c#,.net,string,encryption,compression,C#,.net,String,Encryption,Compression,我正在使用的程序将当前状态的快照保存到xml文件中。我想将其作为blob而不是xml存储在数据库中 首先,我认为xml文件非常占用空间和冗余,因此我们希望在存储到数据库之前以某种方式压缩字符串。此外,我们还想介绍一种简单的加密技术,这样人们在没有简单的密钥/密码的情况下就无法理解它的含义 请注意,我想将其作为blob存储在数据库中,所以我想压缩它然后加密zip文件是不行的 我该怎么做呢?首先,看看您的序列化机制。XML的全部意义在于它是人类可读的。如果这对您来说不再是一个重要的目标,那么可能是时

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

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

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


我该怎么做呢?

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


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

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

真的,搜索compress c和encrypt c无法获得所需的内容吗?看看这是否符合要求。这是重复的吗?@ripper234我主要使用文件压缩和加密,这很难存储在数据库中,只需压缩文件并将流作为内存流保存到字节数组中,然后将其作为blob保存即可。我强烈不同意你的分析。在测试应用程序的业务逻辑时,仍然可以读取XML。在解密和解压缩之后,您仍然可以拦截XML。支持XML的一个论点是,它可以被压缩,这样人类可读的数据在传输或存储过程中不会占用太多空间。@owlstead这是一个公平的观点,但OP没有提到数据需要人类读取,即使是压缩的XML,总是比二进制数据更大:但是真正的要点是仔细考虑在任何给定的场景中哪种存储格式对你的需求是最好的-很多人在某些情况下可能有更好的替代品时默认为XML,而另一方面,OP已经获得了XML,如果必须切换,他必须重写序列化。OP得出结论,压缩和加密不适合他的模型,因为他想要一个blob,但这是一个非常奇怪的结论,OP在没有任何争论的情况下得出了这个结论。