先加密如下
其中表user pwd varbinary(max)类型
update user set pwd=EncryptByPassPhrase(N'123456', pwd) where id=100;
再解密select user, pwd ,CONVERT(NVARCHAR(50),DECRYPTBYPASSPHRASE(N'123456',pwd)) from user where id=100;
解密后出现乱码?? 有一个疑问,其中的N参加代表什么 意思??sql2005解密
其中表user pwd varbinary(max)类型
update user set pwd=EncryptByPassPhrase(N'123456', pwd) where id=100;
再解密select user, pwd ,CONVERT(NVARCHAR(50),DECRYPTBYPASSPHRASE(N'123456',pwd)) from user where id=100;
解密后出现乱码?? 有一个疑问,其中的N参加代表什么 意思??sql2005解密
update 时对字段加密,如何字段前加N ,直接N pwd 要报错?
代码如下 :
update user set pwd=EncryptByPassPhrase(N'123456', N pwd) where id=100;
当然也不能直接给字段前面加N
你要看你原来这个varbinary 是从什么类型转换过去的
你的NVARCHAR 改成 VARCHAR 可能就不乱吗了
给你看个例子DECLARE @v varchar(100)='A~!!@12345',@N Nvarchar(100)=N'A~!!@12345', @vb varbinary(100);
SET @vb = CONVERT(varbinary(100),@v)
SELECT CONVERT(varchar(100),@vb),CONVERT(Nvarchar(100),@vb)
SET @vb = CONVERT(varbinary(100),@N)
SELECT CONVERT(varchar(100),@vb),CONVERT(Nvarchar(100),@vb)