语句是这样的。CREATE TABLE CCC
(
    ID_NO VARBINARY(MAX) NOT NULL,
    NAME NVARCHAR(20),
    S_NO   VARBINARY(MAX) NOT NULL
)
GO
--加密
INSERT into CCC(ID_NO,NAME,S_NO)
SELECT
 EncryptByPassPhrase('ID_NO','被加密的ID_NO'),
'張三',
EncryptByPassPhrase('S_NO','被加密的S_NO')
--解密
Select ID_NO,NAME,S_NO, 
cast(DecryptByPassPhrase('ID_NO',ID_NO) as nvarchar(max)) as 'ID_NO解密',
cast(DecryptByPassPhrase('S_NO',S_NO) as nvarchar(max)) AS 'S_NO解密'
From CCC
GO查询后,解密的内容不正确呀。

解决方案 »

  1.   

    你类型错了
    表里面是VARBINARY强转的时候是nvarchar
      

  2.   


    我换成VARBINARY后,转回来的,也是像编译是被加密的样子。、囧呀
      

  3.   


    弄明白了。DecryptByPassPhrase他只能转成varchar才行。谢谢了。
      

  4.   

    是我搞错了,类型是对的
    不过,你在插入的时候要加上N
    比如,
      EncryptByPassPhrase('ID_NO',N'被加密的ID_NO'),
    你试试吧
      

  5.   

    是我搞错了,类型是对的
    不过,你在插入的时候要加上N
    比如,
      EncryptByPassPhrase('ID_NO',N'被加密的ID_NO'),
    你试试吧