Преобразование строки в байтовый массив

c# arrays string

81 просмотра

2 ответа

У меня возникла проблема, когда вызов метода требует строку (plainText) или byte [] (plainTextAsBytes) и генерирует ошибку компиляции. Cannot implicitly convert type string to byte[]Я попытался неявно преобразовать строку в байтовый массив, но безуспешно.

Я прочитал и попробовал примеры, расположенные в следующих сообщениях SO:

Преобразование строки в байтовый массив в C #

Невозможно неявно преобразовать строку типа в byte []

Код, по которому я звоню, находится по адресу (в разделе C #):

Как зашифровать и расшифровать данные с солью

Итак, что я делаю не так?

Редактировать 1

Проблема в том, что при использовании этого:

byte[] array = Encoding.UTF8.GetBytes(SMTPModel.SMTPPassword);
EncryptedPassword = RijndaelEnhanced.Encrypt(plainTextBytes: array);

или же:

EncryptedPassword = RijndaelEnhanced.Encrypt(plainText: decryptedPassword);

или даже:

EncryptedPassword = RijndaelEnhanced.Encrypt(plainText: "Test");

Я получаю вышеуказанную ошибку.

Редактировать 2

Забыл предоставить следующую информацию:

decryptedPassword является строкой, определенной как:

string decryptedPassword = SMTPModel.SMTPPassword;
Автор: John Schultz Источник Размещён: 08.11.2019 10:58

Ответы (2)


0 плюса

Хорошо, спасибо за понимание и помощь, однако проблема не в моем коде, а в коде, который я вызываю. Когда я использую другой вызов метода из класса Rijndael ( EncryptToBytes), он прекрасно компилируется без ошибок.

Вот утверждение, которое работает:

EncryptedPassword = RijndaelEnhanced.EncryptToBytes(plainTextBytes: Encoding.UTF8.GetBytes(SMTPModel.SMTPPassword));

Еще раз спасибо за ваше время.

Автор: John Schultz Размещён: 20.08.2016 07:31

-2 плюса

используйте пространство имен Encoding. Обратите внимание, что кодировка UTF8 может быть ASCII или другой.

byte [] array = Encoding.UTF8.GetBytes («Быстрая коричневая лиса перепрыгнула через желтую луну»);

Автор: Shannon Holsinger Размещён: 20.08.2016 06:58
32x32