用法简介,压缩函数

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

那么些标题或者招致数据值的转移。平时来说,上述难题可能在你使用非二进制串数据类型(如char,varchar,text等数据类型卡塔 尔(英语:State of Qatar)的情景下爆发。

下一周未有啥样太专项论题的东西,就流水账记一下。前段时间早先发轫转型Asp.net
MVC,即便曾经落伍时期几条街,可是如故赶赶追追。有大器晚成部分太细的点记在本人的笔记里,就不记到此处了,每一回发网易都以第三回编写,希望能扩展回忆。

意气风发、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二十九人密钥来编码,但顾客能够将其扩展到2伍十四个人。MySQL选择129位密钥,因为这么算法达成越来越快,何况对绝大多数顾客来说它也充裕安全了。

当中,’待加密的值’要万分小心,赋的值雷同,假使类型不一致,获得的md5判若鸿沟。举例:varchar,nvarchar,因为他们的骨子里存款和储蓄大小不相近。

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

AES_ENCRYPT(str,key_str)函数加密四个字符串并再次回到贰个二进制串。AES_DECRYPT(crypt_str,
key_str) 函数能够解密使用官方AES(Advanced Encryption
Standard卡塔 尔(英语:State of Qatar)算法加密的数据并回到原有字符串,输入变量可以是任意长度。假若输入变量为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中华VF(Cross-site
request
forgery卡塔 尔(阿拉伯语:قطر‎卡塔尔那些概念,意思就是第三方站点利用漏洞站点对浏览器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_ENC奥迪Q5YPT()加密的字符串,假若现身错误,该函数再次回到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()

PASSWO锐界D(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):该函数计算七个字符串的126位MD5校验和,再次回到的结果是由三十三个十四进制数字组合的二进制串。尽管变量为NULL,则赶回为NULL。

其加密结果示举例下:

图片 3

  • SHA1()/SHA():

SHA1(str)/SHA(str)函数总括字符串str的164位SHA-1校验和。重返值是二个由叁18个十一进制数字组合的二进制串。假使变量为NULL,则赶回NULL。

其加密结果示比方下:

图片 4

您恐怕感兴趣的篇章:

  • mysql双向加密解密格局用法详明
  • MySQL加密和平解决密实例详整
  • MySQL利用AES_ENCRYPT()与AES_DEC路虎极光YPT()加解密的精确方法言传身教

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website