Как перевести массив байт обратно в строку

237
07 мая 2017, 22:50

Есть метод, который переводит строку в массив байт:

public static void Encrypt(string EnterText)
{
    for (int i = 0; i < EnterText.Length; i++)
    {
        byte[] s = Encoding.Default.GetBytes(EnterText);
        Console.Write(s[i]);
    }
}

Как расшифровать этот массив обратно в строку?

Answer 1

Для преобразования массива байтов в строку существует метод Encoding.GetString.

Если есть уверенность в том, что на момент преобразования массива в строку свойство Encoding.Default будет возвращать ту же кодировку что и на момент преобразования строки в массив, то достаточно сделать так:

private static readonly Encoding encoding = Encoding.Default;
public static byte[] Encrypt(string str)
{
    return encoding.GetBytes(str);
}
public static string Decrypt(byte[] data)
{
    return encoding.GetString(data);
}

Если же желания или возможности надеяться на Encoding.Default нет, можно просто использовать конкретную кодировку. Например, UTF-8:

private static readonly Encoding encoding = Encoding.UTF8;
READ ALSO
Получить доступ к компонентам из Form1 в UserControl

Получить доступ к компонентам из Form1 в UserControl

Как я могу получить доступ к компонентам (например: treeView, combobox,editText) из формы Form1 в UserControl?

207
Как отобразить название файла в label?

Как отобразить название файла в label?

Как из компонента listBox отобразить имя автора музыки в label1, а название композиции label2? Пользователь нажимает button который воспроизводит композицию,...

301
Проверка формата файла

Проверка формата файла

Добрый вечерКак можно проверить формат файла? Если формат текстового документа, то принимаем, а если нет, то ловим исключение

206
Подключение кода С++ к С#

Подключение кода С++ к С#

У меня есть несколько классов, с разнообразными методами взаимодействия со структурами данных, несколько простых функцийВсе написано на языке...

286