Мне нужно хранить пароли электронной почты, которые будут использоваться с system.net.mail. Их нужно извлекать и отправлять в виде обычного текста, но я не хочу хранить их в виде обычного текста. На самом деле речь идет не о безопасности, а о внутренней сети, и я просто не хочу, чтобы результаты отображались в виде обычного текста в CMS.
Я читал много статей, в которых говорилось, что хранение пароля должно выполняться с использованием SHA1. Из того, что я читал, хеширование бесполезно, потому что простой текст не может быть получен.
В настоящее время я пробую эти методы:
public static string EncodePasswordToBase64(string password)
{
try
{
byte[] encData_byte = new byte[password.Length];
encData_byte = System.Text.Encoding.UTF8.GetBytes(password);
string encodedData = Convert.ToBase64String(encData_byte);
return encodedData;
}
catch (Exception ex)
{
throw new Exception("Error in base64Encode" + ex.Message);
}
}
а также
public static string DecodeFrom64(string encodedData)
{
System.Text.UTF8Encoding encoder = new System.Text.UTF8Encoding();
System.Text.Decoder utf8Decode = encoder.GetDecoder();
byte[] todecode_byte = Convert.FromBase64String(encodedData);
int charCount = utf8Decode.GetCharCount(todecode_byte, 0, todecode_byte.Length);
char[] decoded_char = new char[charCount];
utf8Decode.GetChars(todecode_byte, 0, todecode_byte.Length, decoded_char, 0);
string result = new String(decoded_char);
return result;
}
но я не могу найти правильный тип данных в моей базе данных для хранения значения. В настоящее время установлено значение nvarchar(MAX).
Содержимое ячейки отображается следующим образом (с пробелами между значениями):
Q X B j L W V w M X B =
Странно, когда я нажимаю и вхожу в ячейку, чтобы скопировать данные, все, что я получаю, это:
Q
Какой тип данных следует использовать для этого столбца?