如何使用C#代码在ASP.NET中执行替换加密算法?
请为我提供示例代码语法....
答案 0 :(得分:2)
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();
答案 1 :(得分:0)
实际上ROT13是Caesar cipher的变体,其想法是将纯文本字母在字母表中进一步移位N个位置。 ROT13或Caesar密码都不安全。为什么?
基本上,人们可以将加密强度定义为破坏给定加密文本所需的工作量。那么我们应该做些什么来打破这些呢? :
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密码在加密操作中不使用FIXED字母。 (它通过按要求的顺序切换它们使用几个字母表)。这就是为什么Vigenere比ROT13 / Caesar更安全的原因。仍然Vigenere是弱加密,与XOR encryption相当。为什么Vigenere很弱?基本上因为它容易受到Frequency analysis的影响(当然首先需要猜测/找到密钥长度)。 这是vigenere C# code(与Caesar / ROT13一起)。
祝你好运!