sql2005 EncryptByPassPhrase 加密遇到问题

@信心 2013-07-25 11:14:10
先加密如下
其中表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参加代表什么 意思??

...全文
241 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
黄_瓜 2013-07-25
  • 打赏
  • 举报
回复
因为你的pwd 是varbinary 类型的 你要看你原来这个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)
黄_瓜 2013-07-25
  • 打赏
  • 举报
回复
你的pwd 定义的是varbinary 类型的 不需要加N。 当然也不能直接给字段前面加N
@信心 2013-07-25
  • 打赏
  • 举报
回复
谢谢了! update 时对字段加密,如何字段前加N ,直接N pwd 要报错? 代码如下 : update user set pwd=EncryptByPassPhrase(N'123456', N pwd) where id=100;
發糞塗牆 2013-07-25
  • 打赏
  • 举报
回复
@信心 2013-07-25
  • 打赏
  • 举报
回复
谢谢!你的NVARCHAR 改成 VARCHAR 即可!
通过慢sql分析的学习,了解什么是慢sql,以及慢SQL会引起那些性能问题。清楚慢sql日志的设置,然后再通过慢sql分析工具的学习,清楚慢sql分析的步骤和流程。慢sql分析工具:mysqldumpslow工具、explain工具、profile工具、Optimizer Trace工具。 提供课程中所使用的sql语句。 课程内容:第一章:课程简介1、课程介绍2、课程大纲 第二章:慢sql简介1、慢sql简介2、慢sql会引起的问题 第三章:慢日志的设置1、慢sql的分析流程2、慢日志参数理解3、慢日志参数设置:第1种方式:my.ini文件设置4、慢日志参数设置:第2种方式:sql脚本设置5、慢日志参数设置-效果验证 第四章:如何发现慢sql1、如何发现慢sql:第1种方式:慢日志文件2、如何发现慢sql:第2种方式:mysql库的slow_log表 第五章:慢sql分析工具1、慢sql提取-mysqldumpslow工具-使用方法2、慢sql提取-mysqldumpslow工具-操作实战3、慢sql的执行计划分析-explain分析-执行计划结果说明4、慢sql的执行计划分析-explain分析-索引介绍+type类型举例5、慢sql的资源开销分析-profile分析-分析步骤6、慢sql的资源开销分析-profile分析-show profile执行阶段说明7、慢sql的资源开销分析-profile分析-完整列表说明+操作实战8、慢sql的跟踪分析-Optimizer Trace分析-分析步骤9、慢sql的跟踪分析-Optimizer Trace表的介绍10、索引失效场景举例 第六章:慢日志清理1、慢日志清理

22,207

社区成员

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

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