0
我試圖加密,並使用下面的代碼解密:ENCRYPTBYPASSPHRASE和DECRYPTBYPASSPHRASE沒有返回正確的價值觀
declare @decryptedValue nvarchar(4000)
declare @encryptedValue varbinary(8000)
SET @encryptedValue = ENCRYPTBYPASSPHRASE('SQL SERVER 2008','SomeValue')
Set @decryptedValue = DECRYPTBYPASSPHRASE('SQL SERVER 2008',@encryptedValue)
print @decryptedValue
但解密的價值是不是我在(「someValue中」)通過,但一些加密的性格特徵潓敭慖畲即
奇怪的是,如果我創建了兩個功能,如它下面的工作:
CREATE FUNCTION dbo.Encrypt(@str nvarchar(4000))
RETURNS varbinary(8000)
AS BEGIN
DECLARE @res varbinary(8000)
SET @res = ENCRYPTBYPASSPHRASE('SQL SERVER 2008',@str)
RETURN (@res)
END
GO
CREATE FUNCTION dbo.Decrypt(@encrypt varbinary(8000))
RETURNS nvarchar(4000)
AS
BEGIN
DECLARE @res nvarchar(4000)
SET @res = DECRYPTBYPASSPHRASE('SQL SERVER 2008',@encrypt)
RETURN(@res)
END
GO
declare @x nvarchar(4000)
declare @code varbinary(8000)
SET @code = dbo.Encrypt('SomeValue')
Print @code
set @x = dbo.Decrypt(@code)
print @x
我缺少什麼?
問題是與nvarchar,如果將其更改爲varchat它工作正常 – Simsons