SQL
テキストの暗号化と復号化
パスフレーズ(パスワード)でテキストの暗号化と復号化をすることができます。
declare @passphrase varchar(64)
declare @value_to_encrypt varchar(64)
declare @value_of_encrypt varbinary(64)
declare @value_of_decrypt varchar(64)
set @passphrase = 'passphrase'
set @value_to_encrypt = 'value_to_encrypt'
set @value_of_encrypt = encryptbypassphrase(@passphrase, @value_to_encrypt)
set @value_of_decrypt = decryptbypassphrase(@passphrase, @value_of_encrypt)
print @value_of_encrypt
print @value_of_decrypt
--------
0x01000000DDE0C5C7CD6DB3E37DF76F4AB970872BF0765BE2D891C787FA998A4D2FD0B6D686F498DE457639E6
value_to_encrypt
encryptbypassphraseではランダムな暗号化キーまたは初期化子を使用しているようです。同じパフフレーズで同じテキストを暗号化しても、戻り値は常に異なります。
encryptbypassphraseの戻り値の長さは暗号化するテキストの長さ+αという感じです。パスフレーズの長さにはよりません。
decryptbypassphraseの戻り値はvarbinaryです。