替代算法

时间:2011-02-24 23:07:11

标签: string encryption cryptography substring substitution

如何使用C#代码在ASP.NET中执行替换加密算法?

请为我提供示例代码语法....

2 个答案:

答案 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密码都不安全。为什么?

基本上,人们可以将加密强度定义为破坏给定加密文本所需的工作量。那么我们应该做些什么来打破这些呢? :

  • ROT13 - &gt;我们只需将每个字符移回字母表中的13个位置。 (完全没有安全感。)
  • 凯撒密码 - &gt;
    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一起)。

祝你好运!