1

[user]次の構造を持つ、SQL Server Management Studio で作成されたtable があります。

id int PRIMARY NOT NULL  
login varchar(255) NOT NULL  
password varchar(32) NOT NULL  

今、最初のユーザーをデータベースに挿入したいと思います。table を右クリックし、新しいユーザー値を[user]選択Edit top 200 rowsしてグリッドに入力します。

id    | login    | password
1     | admin    | MD5('admin') 

しかし、保存後、挿入されたパスワードは ですがMD5('admin')21232f297a57a5a743894a0e4a801fc3ハッシュが必要です。

Microsoft SQL Server Management Studio でそれを行うにはどうすればよいですか?

ありがとう

PS SQL Server 2008 Express 10.50.1600.1 と Microsoft SQL Server Management Studio 10.50.1600.1 を使用しています。

4

3 に答える 3

3
  1. ハッシュ値はバイト配列であり、文字列ではありません。VARBINARY 列タイプを使用します。
  2. ソルトなしのパスワードの MD5 を挿入しないでください。パスワードへのハッシュをオンラインで逆クラックするには、 2.96 秒かかります。適切にソルトされたパスワードを使用し、表にソルトを書き込みます。
  3. Right click to table [user], choose Edit top 200 rows and type new user values into the grid. さて、あなたは何を期待していますか?テーブル編集は値を入力する機能で、文字列を入力するとMD5('admin')テーブルの値は... になりますMD5('admin')。これはインタラクティブな関数エバリュエーターではありません (MD5 が SQL Server 関数ではないことを除けば...)

車輪を再発明しないでください。特に、流暢な暗号を話せない場合は、セキュリティの車輪を再発明しないでください。ほとんどのフレームワークには、メンバーシップ管理用のモジュールがあります。例えば。メンバーシップの紹介

于 2013-04-05T12:38:56.927 に答える
2

グリッド テーブルでクエリを実行することはできません。更新するには、クエリを実行する必要があります。MD5 を計算するには、次を使用できます。

CONVERT(VARCHAR(32), HashBytes('MD5', 'admin'), 2)
于 2013-04-05T12:40:22.520 に答える