CShap 恺撒加解密算法 源代码
时间: 2023-11-10 08:59:03 浏览: 72
python语言编程实现凯撒密码、凯撒加解密算法
以下是C#实现的恺撒加解密算法源代码:
```csharp
public static string CaesarEncrypt(string plainText, int shift)
{
string cipherText = "";
foreach (char c in plainText)
{
if (char.IsLetter(c))
{
char shifted = (char)(((c + shift) - 'A') % 26 + 'A');
cipherText += shifted;
}
else
{
cipherText += c;
}
}
return cipherText;
}
public static string CaesarDecrypt(string cipherText, int shift)
{
string plainText = "";
foreach (char c in cipherText)
{
if (char.IsLetter(c))
{
char shifted = (char)(((c - shift) - 'A' + 26) % 26 + 'A');
plainText += shifted;
}
else
{
plainText += c;
}
}
return plainText;
}
```
在上面的代码中,`CaesarEncrypt()`方法将给定的纯文本和移位量作为输入参数,并返回加密后的密文。`CaesarDecrypt()`方法将给定的密文和移位量作为输入参数,并返回解密后的纯文本。
这些方法使用了foreach循环遍历输入字符串中的每个字符。对于每个字母字符,它们使用移位算法来转换字符,并将其添加到加密或解密输出字符串中。对于非字母字符,它们将其直接添加到输出字符串中。
在加密时,对于每个字母字符,我们将其转换为其在字母表中的位置(A = 0,B = 1,...,Z = 25)。然后,我们将移位量添加到这个位置,并将结果取模26,以确保它仍然在字母表中。最后,我们将结果转换回字母,并将其添加到输出字符串中。
在解密时,我们使用相同的移位算法,但是我们从字母位置中减去移位量,并将结果取模26。然后,我们将结果转换回字母,并将其添加到输出字符串中。
需要注意的是,这种加密方法是非常弱的,因为它只是简单地移动字母字符。这使得它容易被破解。
阅读全文