Sql server 2008 在SQL Server 2008中,如何将加密数据转换为字符串并解密数据

Sql server 2008 在SQL Server 2008中,如何将加密数据转换为字符串并解密数据,sql-server-2008,Sql Server 2008,在SQL Server 2008中,如何将加密数据转换为字符串并解密数据 我试过以下方法 加密数据: SELECT CONVERT([varchar](512), EncryptByPassPhrase('Nessis22',CONVERT(NVARCHAR(MAX), '6234')), 2) SELECT CONVERT(VARCHAR(MAX), DecryptByPassPhrase('Nessis22' , 0x01000000F2AA862E820415737E99

在SQL Server 2008中,如何将加密数据转换为字符串并解密数据

我试过以下方法

加密数据:

SELECT 
   CONVERT([varchar](512), EncryptByPassPhrase('Nessis22',CONVERT(NVARCHAR(MAX), '6234')), 2)
SELECT 
   CONVERT(VARCHAR(MAX), DecryptByPassPhrase('Nessis22'
, 0x01000000F2AA862E820415737E99B1EDA7D3EF47225DAA898A744B118908BE626EE2510E))
结果:

0x01000000F2AA862E820415737E99B1EDA7D3EF47225DAA898A744B118908BE626EE2510E
解密数据:

SELECT 
   CONVERT([varchar](512), EncryptByPassPhrase('Nessis22',CONVERT(NVARCHAR(MAX), '6234')), 2)
SELECT 
   CONVERT(VARCHAR(MAX), DecryptByPassPhrase('Nessis22'
, 0x01000000F2AA862E820415737E99B1EDA7D3EF47225DAA898A744B118908BE626EE2510E))
输出:

(No column name)
6

数据被截断了。如何获取完整字符串?

在解密选择中使用NVARCHAR:

select convert(NVARCHAR(max),DecryptByPassPhrase('Nessis22'
, 0x01000000F2AA862E820415737E99B1EDA7D3EF47225DAA898A744B118908BE626EE2510E))

您不能将
加密的结果存储为
varchar(512)
。函数被记录为返回
varbinary(8000)
,这就是您应该将结果存储为的内容。