shwetha1 Ответов: 1

Ошибка в методе декодирования


Это мой метод декодирования:

public static string DecodeFrom64(string m_enc)
   {
       byte[] encodedDataAsBytes =
       System.Convert.FromBase64String(m_enc);
       string returnValue =
       System.Text.Encoding.UTF8.GetString(encodedDataAsBytes);
       return returnValue;
   }


Ошибка заключается в следующем:
Входные данные не являются допустимой строкой Base-64, поскольку они содержат неосновные 64 символа, более двух символов заполнения или символ пробела среди символов заполнения.


Почему я получаю эту ошибку, кто-нибудь, пожалуйста, помогите мне...

1 Ответов

Рейтинг:
4

OriginalGriff

Сообщение об ошибке довольно специфично: "поскольку оно содержит неосновные 64 символа, более двух символов заполнения или символ пробела среди символов заполнения"

Итак, я бы предположил, что вы либо неправильно преобразовали свою строку в базу 64, либо с тех пор испортили ее. Не зная больше о вашем приложении, мы не можем сказать больше.

Посмотрите на строку, когда вы впервые преобразовали ее. Похоже ли это на то, что вы пытаетесь преобразовать обратно? Если нет,то как? А почему бы и нет?

Кстати: вы понимаете, что Base64-это не система шифрования? Что если вы пытаетесь использовать его как таковой, это примерно так же безопасно, как писать "не читать" на внешней стороне вашего личного дневника?


shwetha1

Спасибо за ваш ответ...
Есть ли другой подход к расшифровке моего пароля?.

OriginalGriff

Пароль? О боже, о боже.
База 64 не является защищенной системой, ни в какой форме, ни в какой форме.
Вы все равно не должны шифровать пароли! Вместо этого хэшируйте их.
Здесь есть некоторая информация о том, как это сделать:
http://www.codeproject.com/Tips/186585/Password-Storage-How-to-do-it.aspx

shwetha1

Спасибо, что поделились этой ссылкой..
Но у меня есть проблема, я не могу понять, как преобразовать этот код в качестве моего требования, но это дает мне идею...
Аньехо еще раз спасибо..