3

ユーザーテーブルで管理者パスワードをハッシュするにはどうすればよいですか?

SQL Server2008R2の使用

PHPに暗号化コマンドが組み込まれていることは知っていますが、SQLクエリを使用してこれが可能かどうかはわかりません。

例:usersというテーブル、adminのエントリ、パスワードはsha1('password')

4

3 に答える 3

2

上記のいずれも、パスワード ハッシュを保存する良い方法ではないことに注意してください。PBKDF2 (PKCS #5、RFC2898) を使用して、ソルト化されたパスワードを何度もハッシュします(OWASP は 2012 年に 64,000 回、2 年ごとに 2 倍にすることを推奨しています)。理想的には、ランダムなユーザーごとのソルトで保存された、可変回数のハッシュです。

さらに良いことに、提案されたパスワードを、既知の悪意のあるパスワードのリストに対してバウンスします。理想的には、基本的なクラッキング ルールが既に適用されているため (1337 話す翻訳)、「P@$$w0rd」は許可されません。

OWASP パスワード ストレージ チート シートを参照してください: https://www.owasp.org/index.php?title=Password_Storage_Cheat_Sheet&setlang=es

于 2012-08-17T21:24:16.860 に答える
1

アルゴリズムとして使用HASHBYTESおよび指定します。SHA1例:

SELECT HASHBYTES('SHA1', @password);

編集: Sivaがコメントで言ったように、実際にはパスワードを別の方法で保存し、少なくともそれらをソルトする必要があります.

ここを参照してください:データベースにパスワードを保存する推奨方法

于 2012-04-30T15:18:07.907 に答える
1

暗号化とハッシュには違いがあります。暗号化は、通常は暗号を使用してプレーン テキストを変換し、ハッシュを元の入力に戻すことができない場合、元の入力に戻すことができます。

クエリには、次のHASHBYTES関数を使用する必要があります。

DECLARE @YourInput nvarchar(4000);
SELECT @YourInput = CONVERT(nvarchar(4000),'dslfdkjLK85kldhnv$n000#knf');
SELECT HASHBYTES('SHA1', @YourInput);

SQL Server 2012 を使用している場合は、次を使用できます。

SELECT HASHBYTES('SHA_256', @YourInput); // SHA 256 or SHA_512

http://msdn.microsoft.com/en-us/library/ms174415.aspx

于 2012-04-30T15:27:38.513 に答える