私は私がメモリを保護することが重要ではありませんようSecureString
を使用しないようにJesse C. Slicerソリューションを修正私の目的のために:
string cypherText;
string clearText;
using (var secureString = "Some string to encrypt".ToSecureString())
{
cypherText = secureString.EncryptString();
}
using (var secureString = cypherText.DecryptString())
{
clearText = secureString.ToInsecureString();
}
ここで更新されたコードです。私は暗号化された文字列をシリアル化する必要があります。この作業プロジェクトを作成するには、System.Security
への参照が必要です(ステートメントの使用だけでなく)。
public static class StringSecurityHelper
{
private static readonly byte[] entropy = Encoding.Unicode.GetBytes("5ID'&mc %[email protected]%n!G^ fiVn8 *tNh3eB %rDaVijn!.c b");
public static string EncryptString(this string input)
{
if (input == null)
{
return null;
}
byte[] encryptedData = ProtectedData.Protect(Encoding.Unicode.GetBytes(input), entropy, DataProtectionScope.CurrentUser);
return Convert.ToBase64String(encryptedData);
}
public static string DecryptString(this string encryptedData)
{
if (encryptedData == null)
{
return null;
}
try
{
byte[] decryptedData = ProtectedData.Unprotect(Convert.FromBase64String(encryptedData), entropy, DataProtectionScope.CurrentUser);
return Encoding.Unicode.GetString(decryptedData);
}
catch
{
return null;
}
}
}
そして、それを使用する:
string cypherText = "My string".EncryptString();
string clearText = cypherText.DecryptString();
関連の質問:(http://stackoverflow.com/questions/ [データベースやテキストファイルに、後でそれを保存するためのパスワードを暗号化するには?] 541219 /それを保存するためのパスワードを暗号化する方法 - データベース - または - テキストファイルの後に)。そして、たくさんの、より多くの:[[c#encrypt password 'を含む質問](http://stackoverflow.com/search?q=c%23+encrypt+password)。 –
あなたが何をしても**パスワード*を解読しない**ことに注意してください。むしろ、2つのハッシュが一致していることを確認してください。 –
@CodyGrayには、sql接続文字列にハッシュされたパスワードを送信する方法がありますか? – Odys