Home » Mật mã học » Code C#: Mã hóa cổ điển Vigenere (Vigenere Cipher)
Code C#: Mã hóa cổ điển Vigenere (Vigenere Cipher)
Người đăng: culaoxanh88 on Thứ Năm, 20 tháng 2, 2014
(VIGENERE CIPHER)
///HÀM MÃ HÓA
static void VigenereEncrypt(ref StringBuilder s, string key)
{
for (int i = 0; i < s.Length; i++) s[i] = Char.ToUpper(s[i]);
key = key.ToUpper();
int j = 0;
for (int i = 0; i < s.Length; i++)
{
if (Char.IsLetter(s[i]))
{
s[i] = (char)(s[i] + key[j] - 'A');
if (s[i] > 'Z') s[i] = (char)(s[i] - 'Z' + 'A' - 1);
}
j = j + 1 == key.Length ? 0 : j + 1;
}
}
///HÀM GIẢI MÃ
static void VigenereDecrypt(ref StringBuilder s, string key)
{
for (int i = 0; i < s.Length; i++) s[i] = Char.ToUpper(s[i]);
key = key.ToUpper();
int j = 0;
for (int i = 0; i < s.Length; i++)
{
if (Char.IsLetter(s[i]))
{
s[i] = s[i] >= key[j] ?
(char)(s[i] - key[j] + 'A') :
(char)('A' + ('Z' - key[j] + s[i] - 'A') + 1);
}
j = j + 1 == key.Length ? 0 : j + 1;
}
}
///HÀM CHÍNH
public static void MainMethod()
{
StringBuilder s = new StringBuilder("ArkPhaze");
const string key = "KeyData";
VigenereEncrypt(ref s, key);
Console.WriteLine(s);
VigenereDecrypt(ref s, key);
Console.WriteLine(s);
}
Tag: C, C++, C#, mã hóa cổ điển, Vigenere, Vigenere Cipher, an toàn, bảo mật
Nhãn:
An toàn thông tin,
C#,
Mật mã học
{ 0 nhận xét... read them below or add one }
Đăng nhận xét