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)に設定されています。
セルの内容は次のように表示されます(各値の間にスペースがあります)。
QXB j LWV w MXB =
不思議なことに、セルをクリックして入力し、データをコピーすると、次のようになります。
Q
この列にはどのデータ型を使用する必要がありますか?