【太阳集团太阳娱乐登录】压缩函数,用法简介

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

那些难点可能产生数据值的退换。日常来说,上述难点大概在您利用非二进制串数据类型(如char,varchar,text等数据类型卡塔 尔(英语:State of Qatar)的动静下发出。

上周未有何样太专项论题的事物,就流水账记一下。近来初步早先转型Asp.net
MVC,即使已经落2020时代几条街,可是依旧赶赶追追。有大器晚成对太细的点记在自个儿的笔记里,就不记到此地了,每一趟发天涯论坛都以第贰回编写,希望能扩大回忆。

黄金年代、mssql sql hashbytes
函数简介

  • AES_ENCRYPT()和AES_DECRYPT()

2019.02.19
以前都是在C#先后中央机关单位接生成MD5,这一遍出于逻辑必要,要在SQL
直接生成MD5,学习了五个说话:
select
substring(sys.fn_sqlvarbasetostr(HashBytes(‘MD5′,’123456’)),3,32)
下一场实行了疏散获得以下文化:
1、–HashBytes (‘加密方式’,
‘待加密的值’)–(有个难题,为啥她的归来类型是二进制,最后select出来的确实0x开首的16进制???卡塔 尔(阿拉伯语:قطر‎
–加密方法= MD2 | MD4 | MD5 | SHA | SHA1
–重回值类型:varbinary(maximum 8000 bytes)
select HashBytes(‘MD5′,’123456’)
–HashBytes生成的结果为:0xE10ADC3949BA59ABBE56E057F20F883E

hashbytes函数功能为:重返八个字符,
通过 MD2、MD4、MD5、SHA、SHA1、SHA2_256、SHA2_512措施加密后的重返值

AES_ENCRYPT()和AES_DEC大切诺基YPT()能够加密/解密使用官方AES算法的数目。该算法使用1贰21个人密钥来编码,但客户能够将其扩充到2伍拾十二位。MySQL接纳1贰17人密钥,因为如此算法完结更加快,而且对大许多客商来讲它也丰富安全了。

里头,’待加密的值’要非常当心,赋的值相像,假设类型不一致,获得的md5天差地别。举例:varchar,nvarchar,因为他俩的实际存款和储蓄大小不均等。

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

AES_ENCRYPT(str,key_str)函数加密三个字符串并赶回二个二进制串。AES_DECRYPT(crypt_str,
key_str) 函数能够解密使用官方AES(Advanced Encryption
Standard卡塔 尔(阿拉伯语:قطر‎算法加密的数码并再次来到原有字符串,输入变量能够是即兴长度。要是输入变量为NULL,那么该函数再次来到结果也为NULL。

2、sys.fn_sqlvarbasetostr用于把字节流类型varbinary,转形成字符流varchar
3、substring(‘原始字符串’,’发轫地点’,’截取长度’)字符串截取。有一点内需注意的是,sql跟C#次第分化的是,起初地方是从1起始的,不是0,别算错了

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

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

2019.02.20
通过MVC的一个[ValidateAntiForgeryToken]天性学习到了“跨网址诉求伪造”(CS兰德讴歌RDXF(Cross-site
request
forgery卡塔 尔(英语:State of Qatar)卡塔 尔(英语:State of Qatar)这一个定义,意思正是第三方站点利用漏洞站点对浏览器cookie的相信,发送虚假央求,进而做出一些未经顾客许可的操作,前提是客商未脱离信赖站点的对话,並且相信站点在地面产生了cookie。以前的确没怎么介意那一个细节,只是今后付出的WebAPI项目中平素没有用到cookie,连session也没用,所以应当是平安的。

二、mssql sql hashbytes
举个例子应用

  • ENCODE()和DECODE()

2019.02.21
会集类型的两种选择思路:
1.如果您回来的群集是只用于遍历,不可改进的,则赶回IEnumerable<T>
2.假如回去的集聚要求改良,如加多和删除成分,用ICollection<T>
3.万叁回到的集纳要求帮衬排序,索引等,用IList<T>
4.假使回去的集聚要支持索引,但不能够增加,删除元素,用ReadOnlyCollection<T>

例1:

ENCODE(str,
pass_str):该函数使用pass_str作为密码来加密字符串str,其加密的结果可以由此DECODE()函数来解密。该函数再次来到的结果是一个同str等长。
DECODE(crypt_str,
pass_str):该函数使用pass_str作为密码来解密使用ENCODE()加密后的字符串crypt_str。

2019.02.22
1、泛型:Func<T, bool>,Expression<Func<T,
bool>>用法
Func<T,
bool>:.net系统自定义了二种委托,有重回值的Func,无再次回到值的Action。而Func的末尾一个参数总是委托的回来类型。
Expression<Func<T,
bool>>:是黄金时代种表明式,EF中where要求的种类
例如:

   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()
//正确的代码Expression<Func<QuestionFeed, bool>> predicate=null;if (type == 1){  predicate = f => f.FeedID == id && f.IsActive == true;}else{  predicate = f => f.FeedID == id;}_questionFeedRepository.Entities.Where(predicate);

例2:

DES_ENCRYPT(str[,
{key_num|key_str}]):该函数使用三重DES算法连同给定的密钥来加密加密字符串。
DES_DECRYPT(crypt_str[,
key_str]):该函数解密多少个经过DES_ENCENCOREYPT()加密的字符串,固然现身错误,该函数重回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()

PASSWOOdysseyD(str):该函数用来加密存款和储蓄在user表中
password列的MySQL密码。PASSWO奥迪Q5D()函数由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校验和,重返的结果是由叁11个十九进制数字组合的二进制串。假诺变量为NULL,则赶回为NULL。

其加密结果示比方下:

太阳集团太阳娱乐登录 3

  • SHA1()/SHA():

SHA1(str)/SHA(str)函数总括字符串str的1陆十四人SHA-1校验和。重返值是一个由叁十多个十八进制数字组合的二进制串。倘诺变量为NULL,则赶回NULL。

其加密结果示比方下:

太阳集团太阳娱乐登录 4

你或然感兴趣的篇章:

  • mysql双向加密解密格局用法详明
  • MySQL加密和平解决密实例详细解释
  • MySQL利用AES_ENCRYPT()与AES_DEC途锐YPT()加解密的不错方法亲自去做