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

У меня есть класс, который шифрует пароль с соленым хешем.

Но если я хочу передать NULL в класс, я получаю следующую ошибку:Cannot implicitly convert type string to byte[]

Вот код класса:

public class MyHash
{
    public static string ComputeHash(string plainText, 
                            string hashAlgorithm, byte[] saltBytes)
    {
        Hash Code
    }
}

Когда я использую класс, я получаю ошибку: & quot; Невозможно неявно преобразовать строку типа в byte [] & quot;

//Encrypt Password
byte[] NoHash = null;
byte[] encds = MyHash.ComputeHash(Password, "SHA256", NoHash);
 K-ballo29 мая 2012 г., 04:08
Являютсяstringдолжен быть конвертируемым вbyte[]?

Ответы на вопрос(2)

Решение Вопроса

Тип возврата вашегоComputeHash функция являетсяstring, Вы пытаетесь присвоить результат вашей функцииencds, которыйbyte[], Компилятор указывает вам на это несоответствие, потому что нет неявного преобразования изstring вbyte[].

 MataHari29 мая 2012 г., 04:12
Это то, что происходит, когда вы работаете слишком много часов.

Это потому, что ваш "ComputeHash" Метод возвращает строку, и вы пытаетесь присвоить это возвращаемое значение массиву байтов с помощью;

byte[] encds = MyHash.ComputeHash(Password, "SHA256", NoHash);

Здесь нетimplicit разговор для строки в byte [], потому что существует ряд различных кодировок для представления строки в байтах, таких как ASCII или UTF8.

Вам нужноexplicitly преобразовать байты, используя соответствующий класс кодирования, например так;

string x = "somestring";
byte[] y = System.Text.Encoding.UTF8.GetBytes(x);

Ваш ответ на вопрос