Я работаю над программой шифрования, которая использует столбчатый транспозиционный шифр. Я начинаю, захватывая ввод пользователя и помещая его в строковый массив, а затем печатая перетасованную версию массива. Чтобы расшифровать сообщение, я перепутаю зашифрованное сообщение и пытаюсь напечатать сообщение одного элемента из каждого столбца в массиве строк.Преобразование строкового массива в строку
Например, если мое сообщение «Привет, чувак», оно будет зашифровано до «TD * HU * ERE __ * YE * HED» (пробелы заменяются символами подчеркивания, а нулевые пробелы заменяются звездочками). Затем дешифрование должно реорганизовать массив, затем пройти первый элемент в каждом элементе массива, распечатать его до строки и затем перейти ко второму элементу в каждом элементе массива, чтобы напечатать его в строке, и, следовательно, вперед.
string[] columnEncrypted = userMessage.Split(' ');
string[] columnDecrypted = new string[6];
string DecryptedString = string.Empty;
columnDecrypted[0] = columnEncrypted[5];
columnDecrypted[1] = columnEncrypted[2];
columnDecrypted[2] = columnEncrypted[4];
columnDecrypted[3] = columnEncrypted[3];
columnDecrypted[4] = columnEncrypted[0];
columnDecrypted[5] = columnEncrypted[1];
for (int r = 0; r <= columnDecrypted.Length; r++)
{
for (int c = 0; c < 6; c++)
{
if (columnDecrypted[c] == "_")
{
DecryptedString += ' ';
}
else
{
DecryptedString += columnDecrypted[c];
}
}
}
return DecryptedString;
Это мой первый вопрос, заданный здесь, поэтому, пожалуйста, несите меня, если мое объяснение неясно. Если для лучшего ответа на мой вопрос требуется больше кода, пожалуйста, дайте мне знать, и я предоставлю больше.
Код шифрования выглядит следующим образом:
public string CipheredString(string userMessage)
{
string[] column = new string[6];
for(int c = 0; c <= 5; c++)
{
for (int i = c; i < userMessage.Length; i += 6)
{
if (userMessage[i] == '.')
{
column[c] += ".";
}
else if (userMessage[i] == ',')
{
column[c] += ",";
}
else if (userMessage[i] == '?')
{
column[c] += "?";
}
else if (userMessage[i] == '!')
{
column[c] += "!";
}
else if (userMessage[i] == ' ')
{
column[c] += "_";
}
else
{
column[c] += userMessage[i];
}
}
}
if (column[5].Length < column[0].Length)
{
if (column[4].Length < column[0].Length)
{
if (column[3].Length < column[0].Length)
{
if (column[2].Length < column[0].Length)
{
if (column[1].Length < column[0].Length)
{
column[1] += "*";
column[2] += "*";
column[3] += "*";
column[4] += "*";
column[5] += "*";
}
else
{
column[2] += "*";
column[3] += "*";
column[4] += "*";
column[5] += "*";
}
}
else
{
column[3] += "*";
column[4] += "*";
column[5] += "*";
}
}
else
{
column[4] += "*";
column[5] += "*";
}
}
else
{
column[5] += "*";
}
}
string EncryptedString = column[4] + " " + column[5] + " " + column[1] + " " + column[3] + " " + column[2] + " " + column[0];
return EncryptedString;
}
}
хмм ... что это вопрос? – BrunoLM
Вы хорошо описали, что должна делать ваша программа, но я думаю, что вы забыли объяснить свою проблему. :) – Amy
Чтобы ответить на ваш вопрос, вам нужно сообщить нам свой вопрос. – Jens