Sql加密函数,压缩函数

日期:2019-09-07编辑作者:计算机网络

转自:http://www.maomao365.com/?p=4732

那么些难题只怕产生数据值的更换。一般来说,上述难点大概在你利用非二进制串数据类型(如char,varchar,text等数据类型)的情状下发出。

一、mssql sql hashbytes 函数简要介绍

  • AES_ENCRYPT()和AES_DECRYPT()

hashbytes函数功用为:重返贰个字符,
通过 MD2、MD4、MD5、SHA、SHA1、SHA2_256、SHA2_512办法加密后的重临值

AES_ENCRYPT()和AES_DECCR-VYPT()能够加密/解密使用官方AES算法的数量。该算法使用1二十二位密钥来编码,但客户能够将其扩充到258人。MySQL选拔129人密钥,因为那样算法实现越来越快,并且对大多数客户而言它也丰盛安全了。

hashbytes(‘参数1’,’参数2’)

AES_ENCRYPT(str,key_str)函数加密三个字符串并回到贰个二进制串。AES_DECRYPT(crypt_str, key_str) 函数能够解密使用官方AES(Advanced Encryption Standard)算法加密的数据并赶回原有字符串,输入变量能够是专擅长度。如若输入变量为NULL,那么该函数重返结果也为NULL。

参数1:
输入加密类型 例:MD5
参数2:
输入待加密的字符串(加密字符串最大值为 7000字节)
返回值:
重返值最大为8000字节
注意事项:
当输入加密类型,非凡时,再次回到NULL

因为AES是二个块级算法,须要利用补白来编码非偶数长度的字符串。

二、mssql sql hashbytes 比方应用

  • ENCODE()和DECODE()

例1:

ENCODE(str, pass_str):该函数使用pass_str作为密码来加密字符串str,其加密的结果能够透过DECODE()函数来解密。该函数再次回到的结果是二个同str等长。 DECODE(crypt_str, pass_str):该函数使用pass_str作为密码来解密使用ENCODE()加密后的字符串crypt_str。

   DECLARE @info nvarchar(4000);  
SET @info = CONVERT(nvarchar(4000),'www.maomao365.com');  
SELECT HASHBYTES('SHA1', @info);   ---返回采用SHA1加密
SELECT HASHBYTES('MD5', @info);    ---返回采用MD5加密
SELECT HASHBYTES('MD2', @info);    ---返回采用MD2加密
  • DES_ENCRYPT()和DES_ENCRYPT()

例2:

DES_ENCRYPT(str[, {key_num|key_str}]):该函数使用三重DES算法连同给定的密钥来加密加密字符串。
DES_DECRYPT(crypt_str[, key_str]):该函数解密一个由此DES_ENC奥德赛YPT()加密的字符串,尽管出现错误,该函数重返NULL。

 

  • COMPRESS()和UNCOMPRESS()
     create table A(info1 varchar(30))

insert into A (info1)values('www.maomao365.com')
insert into A (info1)values('猫猫小屋')
insert into A (info1)values('mssql教程专用')
insert into A (info1)values('mssql函数用法简介') 

select HASHBYTES('Md5',info1) as [md5加密], 
HASHBYTES('SHA1',info1) as [SHA1加密],
info1 from A 

truncate table A
drop table A 

COMPRESS(string_to_compress):该函数收缩叁个字符串并且重回二个二进制串。该函数供给MySQL已会同一个压缩库一块编写翻译,举例zlib,不然该函数的重临值总为NULL。压缩后的字符串能够透过 UNCOMPRESS()函数来解压缩。UNCOMPRESS(string_to_uncompress):该函数解压缩一个因此COMPRESS() 函数减去的字符串。借使变量不是多少个压缩值,则结果再次来到为NULL。

 

  • PASSWORD()

PASSWOPRADOD(str):该函数用来加密存款和储蓄在user表中 password列的MySQL密码。PASSWO传祺D()函数由MySQL服务器中的认证种类采用,客户不应当在和谐的施用中运用该函数。若是急需利用加密函数,能够思索动用MD5()大概SHA1()来替代。

其加密结果示举例下:

图片 1

在MySQL的类别数据库mysql的user表中,有二个名称为Password的列,个中保存由password函数加密后的user的密码数据。如下所示:

图片 2

  • ENCRYPT()

ENCRYPT(str[, salt]):该函数通过运用Unix crypt()系统调用来加密str,并回到一个二进制串。当中,salt变量应该是多少个满含多于四个字符的字符串。若是salt未有给定,则接纳二个随机值。即便crypt()系统调用在客商的操作系统上不可用(Windows操作系统便如此),该函数重返为NULL。

  • MD5()

MD5(str):该函数总计二个字符串的1贰拾陆人MD5校验和,重临的结果是由三十个十六进制数字构成的二进制串。假设变量为NULL,则赶回为NULL。

其加密结果示比如下:

图片 3

  • SHA1()/SHA():

SHA1(str)/SHA(str)函数总括字符串str的1陆拾人SHA-1校验和。重临值是二个由36个十六进制数字构成的二进制串。要是变量为NULL,则赶回NULL。

其加密结果示比方下:

图片 4

你只怕感兴趣的篇章:

  • mysql双向加密解密格局用法详解
  • MySQL加密和平消除密实例详解
  • MySQL利用AES_ENCRYPT()与AES_DEC科雷傲YPT()加解密的不错方法亲自去做

本文由今晚最快开奖现场直播发布于计算机网络,转载请注明出处:Sql加密函数,压缩函数

关键词:

批量插入数据

Create proc setup_list_add@creatime Datetime--创建时间,@objjc Varchar(20)--排期项目,@Doctor Varchar(20)--接诊医生,@beginDate Datetime--排班...

详细>>

系统更新,批量删除所有存储过程的方法分享

转自:http://www.maomao365.com/?p=6864 转自: http://www.maomao365.com/?p=5277 摘要: 下文首要陈说,如何对"已上线的系统"中的表,扩...

详细>>

本季度的数据的sql语句

当天: select * from T_news where datediff(day,addtime,getdate())=0 最近三天: select * from T_news where datediff(day,addtime,getdate())= 2 an...

详细>>