-1

Sql server2008 が HASHBYTES() を導入し、md5 を使用してこの方法で任意の文字列を暗号化し、この方法Select HASHBYTES( 'md5', 'demo' )で復号化するために使用されるコードを知りました

Select CONVERT(VARCHAR(MAX), HASHBYTES( 'md5', 'demo' ), 2) 

しかし、この 2 番目の select ステートメントを試すと、暗号化された形式で値が表示されます。デモをテキストとして復号化する方法。ありがとう

4

1 に答える 1

2

一方向ハッシュです。元の形には戻れません。ハッシュを復号化することはできません。目的は何ですか?

このハッシュ値を他のハッシュ値と比較しようとしているだけなら、次のようなことができます

IF HASHBYTES('md5', 'demo') = HASHBYTES('md5',@param) 
    PRINT 'Match!';

編集:

ハッシュは元の値をまったく暗号化しません。代わりに、ハッシュは一方向の数学的アルゴリズムを元の値に適用し、バイナリ値を生成します。

主にパスワードの保存に使用されます。したがって、パスワードはハッシュ形式で保存されます。ユーザーが資格情報 (ID/パスワード) を提供する場合。保存されたパスワードを解読しません。むしろ、ユーザーが提供したパスワードは同じアルゴリズムでハッシュされ、そのハッシュ値は保存されているハッシュ値と比較されます (上記のコード例を参照)。

于 2014-05-14T12:55:24.443 に答える