【997755.com澳门葡京】用法简单介绍,模块的贯彻

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

那些难题或然形成数据值的转移。一般来说,上述难点可能在您采取非二进制串数据类型(如char,varchar,text等数据类型)的气象下爆发。

前一周没有何太专项论题的东西,就流水账记一下。近日开头动手转型Asp.net
MVC,固然早就落二〇二〇时代几条街,不过依旧赶赶追追。有点太细的点记在作者的笔记里,就不记到此地了,每一次发今日头条都是第叁次编写,希望能扩充回忆。

Python3 加密(hashlib和hmac)模块的完成,python3hashlib

以下代码以Python3.6.1为例

  1. hashlib : 不可逆加密
  2. hmac : 不可逆键值对艺术加密

hashlib模块简单介绍:

hashlib模块为差别的平安哈希/安全散列(Secure Hash Algorithm)和
新闻摘要算法(Message Digest
Algorithm)完毕了二个国有的、通用的接口,也足以说是三个合併的输入。因为hashlib模块不独有是组成了md5和sha模块的职能,还提供了对越来越多中算法的函数完结,如:MD5,SHA1,SHA224,SHA256,SHA384和SHA512。

hashlib模块使用手续:

1)获取一个哈希算法对应的哈希对象(比如名字为hash): 能够经过
hashlib.new(哈希算法名称,
伊始出入音讯)函数,来获得那几个哈希对象,如hashlib.new(‘MD5’,
‘Hello’),hashlib.new(‘SHA1’,
‘Hello’)等;也足以透过hashlib.哈希算法名称()来收获这几个哈希对象,如hashlib.md5(),
hashlib.sha1()等。

2)设置/追加输入音讯:
调用已获取哈希对象的update(输入消息)方法能够安装或充实输入消息,数次调用该方法,等价于把每趟传递的参数依靠后开展作为四个参数垫底给update()方法。也正是说,数次调用是丰盛,并不是覆盖。

3)获取输入音信对应的摘要:
调用已获得的哈希对象的digest()方法或hexdigest()方法就可以取得传递给update()方法的字符串参数的摘要消息。digest()方法重临的摘要消息是三个二进制格式的字符串,在那之中大概饱含非ASCII字符,包蕴NUL字节,该字符串长度可以由此哈希对象的digest_【997755.com澳门葡京】用法简单介绍,模块的贯彻。size属性获取;而hexdigest()方法重临的摘要新闻是一个16进制格式的字符串,该字符串中只含有16进制的数字,且长度是digest()重回结果长度的2倍,那可用邮件的安全交互或其余非二进制的情状中。

#!/usr/bin/env python
# coding=utf-8
__author__ = 'Luzhuo'
__date__ = '2017/5/19'
# hash_demo.py Hash加密相关(安全哈希)
# 支持: MD5, SHA1 SHA224 SHA256 SHA384 SHA512


import hashlib


def hash_demo():
  m = hashlib.md5()
  m.update(b"hello")
  m.update(b"world!") # = hello + world!

  hash_hex = hashlib.sha3_512(b"luzhuo.me").hexdigest()

  print(m.digest_size)
  print(m.digest()) # 二进制hash
  print(m.hexdigest()) # 十六进制hash
  print(hash_hex)

  # 加盐加密
  hash_bytes = hashlib.pbkdf2_hmac('sha256', b'luzhuo.me', b'80', 100000)
  print(hash_bytes)



def hash_func():
  # hashlib.new(name[, data]) // 创建hashlib(非首选), name=算法名, data:数据
  hash = hashlib.new('ripemd160', b'luzhuo.me')

  # 常量
  dics = hashlib.algorithms_guaranteed # 所有平台支持的hash算法的名称
  dics = hashlib.algorithms_available # 在Python解析器中可用的hash算法的名称, 传递给new()时, 可识别

  # hashlib.pbkdf2_hmac(hash_name, password, salt, iterations, dklen=None) // 加盐加密 hash_name:hash名称, password:数据, salt:盐, iterations:循环次数, dklen:密钥长度
  hash_bytes = hashlib.pbkdf2_hmac('sha256', b'luzhuo.me', b'80', 100000)

  # hash对象
  num = hash.digest_size # hash结果的大小
  num = hash.block_size # hash算法的内部块的大小
  strs = hash.name # hash名称, 可传给new()使用
  hash.update(b"data") # 字节缓冲区 hash.update(a) hash.update(b) == hash.update(a+b)
  hash_bytes = hash.digest() # 字节hash
  hash_str = hash.hexdigest() # 16进制字符串hash
  hash = hash.copy() # 拷贝hash对象副本



if __name__ == "__main__":
  hash_demo()

  # hash_func()

hashmac模块简单介绍:

前方说过,HMAC算法也是一种一种单项加密算法,而且它是基于上面各个哈希算法/散列算法的,只是它能够在运算进度中采纳叁个密钥来增加强安全性。hmac模块完结了HAMC算法,提供了相应的函数和措施,且与hashlib提供的api基本一致。

hmac模块使用手续:

hmac模块模块的使用手续与hashlib模块的应用手续基本一致,只是在第1步获取hmac对象时,只好使用hmac.new()函数,因为hmac模块未有提供与现实哈希算法对应的函数来获取hmac对象。

#!/usr/bin/env python
# coding=utf-8
__author__ = 'Luzhuo'
__date__ = '2017/5/19'
# hmac_demo.py HMAC算法
# 与hashlib不同之处在于多了key

import hmac


def hmac_demo():
  # 加密
  h = hmac.new(b"net")
  h.update(b"luzhuo.me")
  h_str = h.hexdigest()
  print(h_str)

  # 比较密码
  boolean = hmac.compare_digest(h_str, hmac.new(b"net", b"luzhuo.me").hexdigest())
  print(boolean)



def hmac_func():
  # 创建key和内容,再都进行加密
  # hmac.new(key, msg=None, digestmod=None) // 创建新的hmac对象, key:键, msg:update(msg), digestmod:hash名称(同hashlib.new())(默认md5)
  hc = hmac.new(b"key")

  # hmac对象
  hc.update(b"msg") # 字节缓冲区 hc.update(a) hc.update(b) == hc.update(a+b)
  hash_bytes = hc.digest() # 字节hash
  hash_str = hc.hexdigest() # 16进制hash字符串
  hc = hc.copy() # 拷贝hmac副本
  num = hc.digest_size # hash大小
  num = hc.block_size # hash算法内部块大小
  strs = hc.name # hash名称
  # hmac.compare_digest(a, b) // 比较两个hash密钥是否相同, 参数可为: str / bytes-like object, (注:建议使用,不建议使用a==b)
  boolean = hmac.compare_digest(hmac.new(b"net", b"luzhuo.me").digest(), hmac.new(b"net", b"luzhuo.me").digest())




if __name__ == "__main__":
  hmac_demo()

  # hmac_func()

如上正是本文的全部内容,希望对我们的读书抱有辅助,也期待大家多多援助帮客之家。

加密(hashlib和hmac)模块的落到实处,python3hashlib 以下代码以Python3.6.1为例
hashlib : 不可逆加密 hmac : 不可逆键值对艺术加密
hashlib模块简要介绍:…

一、mssql sql hashbytes
函数简要介绍

  • AES_ENCRYPT()和AES_DECRYPT()

2019.02.19
997755.com澳门葡京 ,先前都以在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 7000 bytes)
select HashBytes(‘MD5′,’123456’)
–HashBytes生成的结果为:0xE10ADC3949BA59ABBE56E057F20F883E

hashbytes函数作用为:再次来到二个字符,
通过 MD2、MD4、MD5、SHA、SHA1、SHA2_256、SHA2_512方式加密后的再次来到值

AES_ENCRYPT()和AES_DECKoleosYPT()能够加密/解密使用官方AES算法的数量。该算法使用1二十十一人密钥来编码,但用户可以将其扩大到259位。MySQL选取1贰15位密钥,因为如此算法实现更加快,何况对绝大相当多用户来讲它也充分安全了。

中间,’待加密的值’要那贰个当心,赋的值同样,借使类型不一样,获得的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字节
注意事项:
当输入加密类型,至极时,重临NULL

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

2019.02.20
通过MVC的一个[ValidateAntiForgeryToken]天性学习到了“跨网址诉求伪造”(CS奥迪Q7F(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_ENCRAV4YPT()加密的字符串,固然出现错误,该函数再次来到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()

PASSWOQX56D(str):该函数用来加密存款和储蓄在user表中
password列的MySQL密码。PASSWO安德拉D()函数由MySQL服务器中的认证种类使用,用户不应该在友好的采纳中使用该函数。若是急需运用加密函数,能够虚拟动用MD5()恐怕SHA1()来代替。

其加密结果示举例下:

997755.com澳门葡京 1

在MySQL的种类数据库mysql的user表中,有一个名叫Password的列,在那之中保存由password函数加密后的user的密码数据。如下所示:

997755.com澳门葡京 2

  • ENCRYPT()

ENCRYPT(str[,
salt]):该函数通过选拔Unix
crypt()系统调用来加密str,并赶回三个二进制串。当中,salt变量应该是多个满含多于四个字符的字符串。若是salt未有给定,则动用多个随机值。若是crypt()系统调用在用户的操作系统上不可用(Windows操作系统便如此),该函数再次来到为NULL。

  • MD5()

MD5(str):该函数总括贰个字符串的1二十八人MD5校验和,重回的结果是由三贰十二个十六进制数字组合的二进制串。尽管变量为NULL,则赶回为NULL。

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

997755.com澳门葡京 3

  • SHA1()/SHA():

SHA1(str)/SHA(str)函数总计字符串str的162位SHA-1校验和。重临值是一个由四十多个十六进制数字组合的二进制串。假如变量为NULL,则赶回NULL。

其加密结果示比方下:

997755.com澳门葡京 4

你可能感兴趣的稿子:

  • mysql双向加密解密方式用法详解
  • MySQL加密和平化解密实例详解
  • MySQL利用AES_ENCRYPT()与AES_DECHavalYPT()加解密的科学方法以身作则

相关文章

发表评论

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

*
*
Website