跪求,高手解答,数据加密后,解不回来了。

luoyichao 2012-07-13 03:06:10
语句是这样的。

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



查询后,解密的内容不正确呀。
...全文
67 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
quchen520 2012-07-13
  • 打赏
  • 举报
回复
N表示你后面的字符串使用的是扩增的字符集
luoyichao 2012-07-13
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

引用 2 楼 的回复:

引用 1 楼 的回复:

你类型错了
表里面是VARBINARY

强转的时候是nvarchar


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

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

请问一下,加个N代表什么??
quchen520 2012-07-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

引用 1 楼 的回复:

你类型错了
表里面是VARBINARY

强转的时候是nvarchar


我换成VARBINARY后,转回来的,也是像编译是被加密的样子。、囧呀
[/Quote]
是我搞错了,类型是对的
不过,你在插入的时候要加上N
比如,
EncryptByPassPhrase('ID_NO',N'被加密的ID_NO'),
你试试吧
quchen520 2012-07-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

引用 1 楼 的回复:

你类型错了
表里面是VARBINARY

强转的时候是nvarchar


我换成VARBINARY后,转回来的,也是像编译是被加密的样子。、囧呀
[/Quote]
是我搞错了,类型是对的
不过,你在插入的时候要加上N
比如,
EncryptByPassPhrase('ID_NO',N'被加密的ID_NO'),
你试试吧
luoyichao 2012-07-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

你类型错了
表里面是VARBINARY

强转的时候是nvarchar
[/Quote]

弄明白了。DecryptByPassPhrase他只能转成varchar才行。谢谢了。
luoyichao 2012-07-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

你类型错了
表里面是VARBINARY

强转的时候是nvarchar
[/Quote]

我换成VARBINARY后,转回来的,也是像编译是被加密的样子。、囧呀
quchen520 2012-07-13
  • 打赏
  • 举报
回复
你类型错了
表里面是VARBINARY

强转的时候是nvarchar

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧