快速加密大型unicode文本文件

时间:2011-03-11 21:46:58

标签: c# .net windows encryption

我有一个大的unicode文本文件(35 MB),其中包含用标点符号分隔的单词。我需要以某种方式隐藏文件的内容(至少来自大多数不专攻破解的人)。

到目前为止最好的方式似乎是加密。我对加密几乎一无所知。我试图将解决方案用于类似的问题“C#的简单双向加密”,但执行加密需要很长时间。

开箱即用的最快方式(算法)是什么(即它包含在.Net lib中)?关于如何使用它的简短示例将是很好的:) 我不关心加密有多强,如果你用文本编辑器打开加密文件而没看到这些文字,那就完美了。重要的是速度。

3 个答案:

答案 0 :(得分:3)

AES非常快,这里有一些帮助实现它:Using AES encryption in C#

除了行业标准加密之外的任何事情迟早都会提出问题。

答案 1 :(得分:0)

到目前为止你尝试了什么? AES和blowfish等标准加密是否太慢?

你总是可以做一些简单的事情,比如根据重复到与文件相同长度的一些密码对内容进行xor-ing。

答案 2 :(得分:-1)

正如tilleryj所说

  

将内容与某些密码重复到与文件相同的长度,简单快速

但它比其他征兵类型更安全。 我编写了一个简单的类,可以帮助您使用另一个字符串作为密码来使用xor方法来输入字符串。希望其他人可以使用它。

`using System;
using System.Text;

namespace MyEncriptionNameSpace { class XorStringEncripter { private string __passWord; public XorStringEncripter(string password) { if (password.Length == 0) { throw new Exception("invalide password"); } __passWord = password; } public string encript(string stringToEncript) { return __encript(stringToEncript); }

public string decript(string encripTedString) { return __encript(encripTedString); } public string __encript(string stringToEncript) { var encriptedStringBuilder = new StringBuilder(stringToEncript.Length); int positionInPassword = 0; for (int i = 0; i < stringToEncript.Length; i++) { __corectPositionInPassWord(ref positionInPassword); encriptedStringBuilder.Append((char)((int)stringToEncript[i] ^ (int)__passWord[positionInPassword])); ++positionInPassword; } return encriptedStringBuilder.ToString(); } private void __corectPositionInPassWord(ref int positionInPassword) { if (positionInPassword == __passWord.Length) { positionInPassword = 0; } } }

}`

实际上和下文做同样的事情,我提供了一个bouth,以避免混淆使用相同的功能进行bouth encription和decrition。这是因为如果你有一个nuber A而你用它与B并且你得到C然后你得到C和C你得到A.
A xor B = C ---&gt; C xor B = A