【发布时间】:2015-08-01 19:51:15
【问题描述】:
我的问题是,如何使用 RC4 加密算法在 C# 中加密和解密文件?
这不是这些问题的重复:
但我承认,乍一看,这个问题看起来像是 this question 的重复,但是,它大约有 7 个月的历史,并且仍然没有直接解决问题的工作代码的答案。
然而,我参考了以下链接,但它们都没有完全回答这个问题,甚至根本没有回答。
http://www.codeproject.com/Articles/5719/Simple-encrypting-and-decrypting-data-in-C
http://www.codeproject.com/Articles/5068/RC-Encryption-Algorithm-C-Version
我知道 Visual Studio 2013 中的内置 System.Security.Cryptography 库支持 RC2,但我现在想重点关注的是 RC4,作为研究的一部分。我知道它很弱,是的,但我仍在使用它。没有重要数据将使用此加密。
最好有一个代码示例,它接受一个流作为输入。我造成了很大的混乱,因为我没有正确描述我的担忧。我选择流输入,因为担心任何其他类型的输入都可能导致处理大文件的速度下降。
规格:NET Framework 4.5、C#、WinForms。
【问题讨论】:
-
似乎第一个(最后两个中的)链接发布了用于加密字节数组的代码。问题是如何使用 或如何适应 它来处理文件?难道你不能将整个文件加载到一个字节数组中,用 RC4 加密(使用该链接中的代码),然后将其写入一个新文件吗?或者该代码不起作用?
-
我认为将文件更改为字节数组可能比仅使用流更有风险,因此我宁愿不冒这种风险。
-
为什么?会涉及什么样的风险?还有,这里的问题是什么?
-
那不就是把整个文件流读入一个字节数组,从那个链接调用代码,然后……把它写到另一个流什么的吗?
-
我赞成,因为您显然已经对此进行了大量研究。但是,我的反馈是:尽可能保持问题简洁。最好不要就人们应该(或不应该)如何投票提出要求——在最坏的情况下,具有这种详细程度的问题可能会遭到一两次反对票,但这并不重要——它们只是独角兽点!此外,在帖子中故意重复信息没有任何价值 - 如果有人不清楚某些内容,他们可以再次阅读。
标签: c# .net winforms encryption rc4-cipher