データ暗号化・パスワード暗号化 / PWDENCRYPT / PWDCOMPARE
この暗号化方式は暗号化のみで復号化はできません。
また,この暗号化方式よりHASHBYTES関数を使ったMD5, SHA256などを利用することをおすすめします。
データを暗号化するときは「PWDENCRYPT」関数を使います。
結構古い関数なので、この関数よりは「HASHBYTES」関数をおすすめします。
「PWDENCRYPT」関数を使い方
SELECT PWDENCRYPT('暗号化する文字')
戻り値の型は「varbinary(128)」です。
またデータを比較する時は「PWDCOMPARE」関数を使います。
「PWDCOMPARE」関数を使い方
SELECT PWDCOMPARE('暗号化する文字','PWDENCRYPTで暗号化された文字')
戻り値の型は「int」型で、一致する場合は「1」、一致しない場合は「0」を返します。
では、下記の例文を実行しながら理解しましょう~
DECLARE @StrVal varchar(100)
DECLARE @StrResult varbinary(128)
-- #### 暗号化する文字
SET @StrVal = 'innoya'
-- #### 暗号化!
SET @StrResult = PWDENCRYPT(@StrVal)
-- #### 暗号化結果
SELECT N'暗号化データ', @StrResult Result
-- #### データを比較。
SELECT PWDCOMPARE(@StrVal, @StrResult) CompareResult
「PWDENCRYPT」関数をは同じ文字を暗号化しても毎回違う値を返しますので、
データを比較する時は「PWDCOMPARE」関数を利用する必要があります。