2012-04-30 13 views
2

ユーザーテーブルで管理者パスワードをハッシュするにはどうすればよいですか?私は暗号化コマンドが存在しているはずのSQL Server 2008 R2ユーザーのテーブルで管理者パスワードをハッシュするにはどうすればよいですか?

を使用して

は、PHPに組み込まれていますが、私は、これはSQLクエリを使用して可能であるかはわかりません。

例:表と呼ばれるユーザー、管理者のエントリと、パスワードが使用HASHBYTESやアルゴリズムなどSHA1を指定sha1('password')

+0

(多分あなたはより具体的なことができる)、プレーンテキストとして保存されましたか?アプリケーションでSQL Serverに接続するために使用する接続文字列で使用しているパスワードについて話していますか? –

+0

いいえいいえいいえ、私はユーザーと呼ばれるテーブルがあり、そのテーブルの管理者アカウントを作っています。 –

+1

通常、パスワードを暗号化せずにハッシュします(つまり、可逆性ではないがパスワードが正しいことを確認できるようなSHAのような機能を使用します)。 –

答えて

0

です。例:

SELECT HASHBYTES('SHA1', @password); 

編集:シヴァはしかしコメントで言ったように、あなたが本当に違ったパスワードを格納することと、少なくともそれらを塩漬けする必要があります。

はこちらをご覧ください:Preferred Method of Storing Passwords In Database

+0

ある時点でプログラムが内部から外部に移行する場合は、SHA256を使用するべきですか? –

+0

さて、私はDBにハッシュとして格納する必要があることを知っています。なぜSQLを使用して最初にパスをハッシュするかを尋ねています。私も塩を使うべきだと知っていますが、私はそれらを完全に理解しているとは思えません。誰かがPHPを使って塩類を扱う方法の例を挙げることができますか? –

+0

私はSHA256ええ、ちょっと安全だから、SHA256を使うのにPHPで 'hash'関数を使うhttp://php.net/manual/en/function.hash.php – mattytommo

0

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

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

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

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

+0

そのユーザーのためにSQLでパスワードをハッシュすると、それでもログインシステムに使用できるようになりましたか?私はちょうどPHPからSQLハッシュにパスワードを渡す必要がありますか? –

+0

@Event_Horizo​​n - 管理者だけでなく、すべてのパスワードをハッシュとして保存する必要があります。これはセキュリティ上の観点からも優れており、ログインシステムに必要なロジックも削減されます。 –

1

注意のどれことをあなたがHASHBYTES機能を使用する必要がありますクエリの

上記のパスワードハッシュを保存するのに適しています。 のパスワードのパスワードを何度も何度もハッシュするためには、PBKDF2(PKCS#5、RFC2898)を使用してください(OWASPは、2年ごとに倍増する2012年に64,000回を推奨します)。理想的には、それをさまざまな回数、ユーザーごとのランダムな塩で保存します。

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

OWASPのパスワード保存カンニングペーパーを参照してください:あなたは、「管理者パスワード」を参照してくださいか https://www.owasp.org/index.php?title=Password_Storage_Cheat_Sheet&setlang=es

関連する問題