まず、パスワードを暗号化しないでください。 themをハッシュする必要があります(これについては永遠に議論があります)。
パスワードをハッシュする場合は、HMACSHA1を使用できます。たとえば、ユーザーを作成してパスワードを保存する前に、次のように入力します。
HMACSHA1 hash = new HMACSHA1();
hash.Key = youKey; // you could use machine key
encodedPassword = Convert.ToBase64String(hash.ComputeHash(Encoding.Unicode.GetBytes(password)));
この値をデータベースに保存します。 入力したパスワードをハッシュして比較し、ハッシュ値を比較することができます。
<membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="20">
<providers>
<remove name="AspNetSqlProvider" />
<add name="SqlProvider"
type="System.Web.Security.SqlMembershipProvider"
passwordFormat="Hashed"
applicationName="/" />
</providers>
</membership>
チェックアウトこの上で私のblog post:パスワードは設定ファイルにハッシュされることを指定する必要があります。もちろん、
。そこには、ハッシュされた、暗号化されたパスワードを使用する例があります。
私はこの場合、私はそれらを平文で保存したくないということを意味しています。 –
@MikeWills - 私はあなたがこれによって何を意味しているのか分かりませんが、暗号化されているかハッシュされていても、どちらの場合でもクリアテキストで保存しません。 – TheBoyan
クリアテキストの意味は、パスワードがpass1234の場合、パスワードフィールドにpass1234が表示されます。ハッシュド私はランダムな不器用なように見えるだろう。 –