-1

MD5 を使用してパスワードを更新するクエリを作成しました。しかし、古いパスワードだけでなく、新しいパスワードも機能していません。以下はクエリです。

UPDATE tbl_user
SET password = HashBytes('MD5', CAST(CHECKSUM('abc') AS varchar(32)))
WHERE login_id = 'user123'

パスワードとしてabcを指定すると、アプリケーションにログインしても機能しません。

4

1 に答える 1

0

よくわかりませんが、まったく同じことをしたことはありませんがHashBytes('MD5', CAST(CHECKSUM('abc') AS varchar(32)))、通常のクエリのように、パスワードの値を引用符で囲む必要があると思います

UPDATE tbl_user SET password='complexpassword' WHERE login_id = 'user123'

ああ、おそらく login_id を囲む括弧を削除する必要があります。パスワード値に引用符がない場合、文字列の末尾がどこにあるのかわかりません。おそらく "HashBytes('MD5', CAST(CHECKSUM('abc') AS varchar(32)))WHERE (login_id = 'user123')" をパスワードとして入力すると、位置情報がないことがわかります。つまり、文字列を認識してそのままテーブルに配置し、ハッシュを実行していません。

最も簡単な方法は、パスワードをクエリ ステートメントに渡す前にハッシュすることです。あなたの状況でそれが機能しない場合、および上記の修正が機能しない場合は教えてください.

于 2012-04-19T12:59:54.267 に答える