码迷,mamicode.com
首页 > 其他好文 > 详细

EncryptByPassPhrase与DecryptByPassPhrase的浅说

时间:2020-09-24 21:08:00      阅读:45      评论:0      收藏:0      [点我收藏+]

标签:ase   inf   ras   arc   内置函数   字符   加密和解密   类型   sel   

在sqlserver中,可以通过内置函数EncryptByPassPhrase对字符串进行加密,通过内置函数DecryptByPassPhrase对加密后的密文进行解密。

代码如下:

declare @UserName nvarchar(100)=‘张三‘
declare @Encrypt varbinary(max)=null
--加密
select @Encrypt=ENCRYPTBYPASSPHRASE(‘12312#$#2sj‘,@UserName)
select @Encrypt as EncryptText
--解密
select CONVERT(nvarchar,DECRYPTBYPASSPHRASE(‘12312#$#2sj‘,@Encrypt)) as DecryptText

 技术图片

 

 EncryptByPassPhrase与DecryptByPassPhrase在配对的时候,一定要记住加密时字符串的类型,nvarchar和varchar是不一样的。加密时为nvarchar,解密时转为varchar,解密后的字符串是乱码。加密和解密时,对应的字符串类型一定要一样,同是nvarchar,或同是varchar。

如下代码:

declare @UserName nvarchar(100)=张三
declare @Encrypt varbinary(max)=null
--加密
select @Encrypt=ENCRYPTBYPASSPHRASE(12312#$#2sj,@UserName)
select @Encrypt as EncryptText
--解密
select CONVERT(varchar,DECRYPTBYPASSPHRASE(12312#$#2sj,@Encrypt)) as DecryptText

@UserName的累心是nvarchar,而以varchar类型作为解密的文本类型,则会产生如下错误结果:

技术图片

 

EncryptByPassPhrase与DecryptByPassPhrase的浅说

标签:ase   inf   ras   arc   内置函数   字符   加密和解密   类型   sel   

原文地址:https://www.cnblogs.com/williamwsj/p/13717094.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!