语句是这样的。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查询后,解密的内容不正确呀。
(
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查询后,解密的内容不正确呀。
表里面是VARBINARY强转的时候是nvarchar
我换成VARBINARY后,转回来的,也是像编译是被加密的样子。、囧呀
弄明白了。DecryptByPassPhrase他只能转成varchar才行。谢谢了。
不过,你在插入的时候要加上N
比如,
EncryptByPassPhrase('ID_NO',N'被加密的ID_NO'),
你试试吧
不过,你在插入的时候要加上N
比如,
EncryptByPassPhrase('ID_NO',N'被加密的ID_NO'),
你试试吧