Реализовать шифрование на основе пользовательского алфавита - C#
Формулировка задачи:
Напишите подпрограммы Encode (зашифровать) и Decode (расшифровать), которые получают два параметра str и alpha типа string. В первом параметре задается слово, подлежащее шифрованию (расшифровке), второй представляет собой некоторую перестановку 26 латинских букв алфавита. Принцип преобразования для шифрации состоит в следующем. Если некоторая буква в str является k–ой буквой в обычном алфавите, то вместо нее должна быть взята буква из k–ой позиции "нового" алфавита alpha. Для подпрограммы дешифровки используется обратный принцип.
Решение задачи: «Реализовать шифрование на основе пользовательского алфавита»
textual
Листинг программы
using System;
class Test
{
static string alphabet = "abcdefghijklmnopqrstuvwxyz";
static string Encode(string str, string alpha) {
string result = String.Empty;
for ( int i = 0; i < str.Length; i++ ) {
if ( alphabet.IndexOf(str[i]) != -1 ) {
result += alpha[alphabet.IndexOf(str[i])];
} else {
result += str[i];
}
}
return result;
}
static string Decode(string str, string alpha) {
string result = String.Empty;
for (int i = 0; i < str.Length; i++) {
if ( alphabet.IndexOf(str[i]) != -1 ) {
result += alphabet[alpha.IndexOf(str[i])];
} else {
result += str[i];
}
}
return result;
}
static void Main() {
Console.WriteLine(Encode("hello world", "qwertyuiopasdfghjklzxcvbnm"));
Console.WriteLine(Decode("itssg vgksr", "qwertyuiopasdfghjklzxcvbnm"));
}
}