如何用C#代码在ASP.NET中实现替换加密算法?
请务必向我提供示例代码语法...
发布于 2011-03-13 23:12:49
实际上,ROT13是Caesar cipher的变体,它的思想是将纯文本的字母在字母表中再移动N个位置。ROT13和凯撒密码都不安全。为什么?
基本上,可以将加密强度定义为破解给定加密文本所需的工作量。那么我们应该怎么做才能打破这些呢?
for N=1 to 26 do:
shift each character by N positions back in the alphabet.
If a lot of common English words (the, and, that,...) - encryption is cracked.
所以在Caesar的情况下,破解加密文本的迭代次数仍然是26次,所以我们可以安全地断言,Caesar密码也没有安全性。(当然,它比ROT13好一点)。
如果你想要一个更有用的替换密码--那就使用Vigenere cipher。与ROT13/Caesar密码不同,维吉尼亚密码在加密操作中不使用固定字母表。(它通过按要求的顺序切换来使用几个字母表)。这就是Vigenere比ROT13/Caesar更安全的原因。尽管如此,Vigenere仍然是弱加密的,可以与XOR encryption相媲美。为什么维吉内尔很弱?基本上是因为它容易受到Frequency analysis的攻击(当然,首先需要猜测/找到密钥长度)。这里是vigenere C# code (连同Caesar/ROT13)。
祝好运!
发布于 2011-02-25 07:13:43
StringBuilder encryptedBuilder = new Stringbuilder();
for(int i = 0; i < key.Length; i++) {
char e = getCharFor(key[i]); // this does substitution - implement this
encryptedBuilder.Append(e);
}
string encryptedString = encryptedBuilder.ToString();https://stackoverflow.com/questions/5111691
复制相似问题