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

这一个标题可能招致数据值的改善。经常来讲,上述难点恐怕在你选取非二进制串数据类型(如char,varchar,text等数据类型卡塔尔国的意况下发生。

前一周未有怎么太专项论题的事物,就流水账记一下。方今早先动手转型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进制???卡塔 尔(英语:State of Qatar)
–加密方法= 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悍马H2YPT()可以加密/解密使用官方AES算法的数码。该算法使用1二十十位密钥来编码,但客户能够将其扩展到255个人。MySQL接收1二十六人密钥,因为如此算法完毕更加快,并且对绝大很多客商来说它也充足安全了。

里头,’待加密的值’要超小心,赋的值肖似,如若类型不一样,获得的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]个性学习到了“跨网址必要假造”(CSQX56F(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_ENCEnclaveYPT()加密的字符串,借使现身谬误,该函数再次回到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猎豹CS6D()函数由MySQL服务器中的认证系统接收,客商不该在大团结的运用中动用该函数。要是要求动用加密函数,能够思量采纳MD5()恐怕SHA1()来替代。

其加密结果示比如下:

home88一必发 1

在MySQL的系统数据库mysql的user表中,有多少个名字为Password的列,当中保存由password函数加密后的user的密码数据。如下所示:

home88一必发 2

  • ENCRYPT()

ENCRYPT(str[,
salt]):该函数通过动用Unix
crypt()系统调用来加密str,并再次来到三个二进制串。当中,salt变量应该是一个暗含多于四个字符的字符串。即使salt未有给定,则使用四个随机值。假诺crypt()系统调用在客商的操作系统上不可用(Windows操作系统便如此卡塔尔国,该函数再次回到为NULL。

  • MD5()

MD5(str):该函数总结三个字符串的1二十八个人MD5校验和,重回的结果是由35个十九进制数字组成的二进制串。如若变量为NULL,则赶回为NULL。

其加密结果示举例下:

home88一必发 3

  • SHA1()/SHA():

SHA1(str)/SHA(str)函数总计字符串str的1陆拾几个人SHA-1校验和。重临值是三个由三十五个十九进制数字组合的二进制串。如若变量为NULL,则赶回NULL。

其加密结果示举个例子下:

home88一必发 4

你可能感兴趣的小说:

  • mysql双向加密解密方式用法详细明白
  • MySQL加密和平解决密实例安详严整
  • MySQL利用AES_ENCRYPT()与AES_DECOdysseyYPT()加解密的不易方法身体力行

相关文章