hashlib模块

简述

用于加密相关的操作,3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法

1、hashlib.md5()加密

1 import hashlib
2 d = hashlib.md5()
3 d.update(b"weng")
4 print(d.hexdigest())
5 #输出  1895e0e72493a2bd17f2559364bbf518
6
7 d.update(b"xiaoqing")
8 print(d.hexdigest())
9 #2句合起来输出  fa12dea42c6f01df6f3ede48b739d083

2、sha...()系列

已经被淘汰

#********************sha256*******************

import hashlib
d = hashlib.sha1()
d.update(b"weng")
print(d.hexdigest())
#输出
# c460d45b9ce464aaf9b705baea3d5e353aa1c8fb

d.update(b"xiaoqing")
print(d.hexdigest())
#2句合起来输出
# c98ab444d0c3a6109e70d2287bdaf65cffbe1e34

#********************sha256*******************
import hashlib
d = hashlib.sha256()
d.update(b"weng")
print(d.hexdigest())
#输出
# af5df0db1afe88190f9215bb66b8eefab08a95f2a2b52b7c5b0e01a526843cdf

d.update(b"xiaoqing")
print(d.hexdigest())
#2句合起来输出
# 296e089ed765bc2017992859f8e3991c81ec5ce53b8dfdf2212cdd0fc6809341

#********************sha256*******************
import hashlib
d = hashlib.sha224()
d.update(b"weng")
print(d.hexdigest())
#输出
# 82924a97a28e2393bd03f1fb0cabbb37a75df4b6ea4186abc4f4acf4

d.update(b"xiaoqing")
print(d.hexdigest())
#2句合起来输出
# cf303311d4f2ce6824a852828f1715ce639834341d4080d2e90d5621

#********************sha256*******************
import hashlib
d = hashlib.sha384()
d.update(b"weng")
print(d.hexdigest())
#输出
# d4aa05ec162859f66141c4b8ff348161a94358911b673719300d212dbe3fcbe0f7ceb74543b9c8b64e726c0e279899a8

d.update(b"xiaoqing")
print(d.hexdigest())
#2句合起来输出
# e30d4698ce244a739e579efb4e4a8f4be07afb84c5d8b5137394d9863c9d55960afe3e8cdb8a8f4c7db89c37f0b00f49

#********************sha256*******************

import hashlib
d = hashlib.sha512()
d.update(b"weng")
print(d.hexdigest())
#输出
# 044218baa100b5051cbfbe1dfbc09463223d3ab4fee581698c2ae0738c0344f63e7c51c0331aeef4d735da4f3b31ab16bfab66e78c6f775384077c0d1268fb62

d.update(b"xiaoqing")
print(d.hexdigest())
#2句合起来输出
# c1f5e2690eb59f9a3f5e8793c1ba48871af36b587c855379a89e3777a6cdce4ee98796284d8875fbd850378b2600f8bf173861f6841909357a789ea1e1421d22

ps:

  1. 以上这几种,其实都是对MD5加密的不同算法
  2. 其中sha256用的最多,比MD5要安全的多
  3. 有些公司会用加盐方式加密,比如:把字符串"zhangqigao",通过一定的算法变成"zhang.qi.gao",当然这种算法自己肯定要知道,然后MD5加密,当然每个公司的加盐方式是不一样的。

3、hmac

还不够吊?python 还有一个 hmac 模块,它内部对我们创建 key 和 内容 再进行处理然后再加密

散列消息鉴别码,简称HMAC,是一种基于消息鉴别码MAC(Message Authentication Code)的鉴别机制。使用HMAC时,消息通讯的双方,通过验证消息中加入的鉴别密钥K来鉴别消息的真伪;

一般用于网络通信中消息加密,前提是双方先要约定好key,就像接头暗号一样,然后消息发送把用key把消息加密,接收方用key + 消息明文再加密,拿加密后的值 跟 发送者的相对比是否相等,这样就能验证消息的真实性,及发送者的合法性了。

1 import hmac
2 d = hmac.new("翁".encode(encoding = "utf-8"))
3 print(d.hexdigest()) #按16进制加密输出
4 print(d.digest())   #按10进制加密输出
5 #1c60af3f79850092000bc20dd67085c7
6 #b‘\x1c`\xaf?y\x85\x00\x92\x00\x0b\xc2\r\xd6p\x85\xc7‘
时间: 2024-10-26 07:05:37

hashlib模块的相关文章

day5模块学习--hashlib模块

hashlib模块     Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 什么是摘要算法呢?摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示). 举个例子,你写了一篇文章,内容是一个字符串'how to use python hashlib - by Michael',并附上这篇文章的摘要是'2d73d4f15c0db7f5ecb321b6a65e5d6d'.如果有人篡改了你的文章,并发表为'ho

python的hashlib模块

hashlib模块是用来对字符串进行hash加密的模块,得到的hash密文不会改变,稳定:用于注册.登录时用户名.密码等加密使用.一.函数分析:1.共有5种加密算法:md5(),sha1(),sha224(),sha256(),sha384(),sha512(),分别得到不同的加密密文.2.hashlib.hexdigest():获取加密的密文,16进制,无参数.3.hashlib.digest():获取加密的密文,二进制,无参数.4.hashlib.copy():复制一份当前创建的hash对象

day6 hashlib模块

    hashlib模块 用于加密相关的文件操作,3.X离代替了md5模块和sha模块,主要提供SHA1,SHA224,SHA256,SHA384,SHA512,MD5算法 __always_supported = ('md5', 'sha1', 'sha224', 'sha256', 'sha384', 'sha512') import hashlib m = hashlib.md5() m.update(b"Hello") m.update(b"It's me"

day6 反射,hashlib模块,正则匹配,冒泡,选择,插入排序

一.反射(自省) 首先通过一个例子来看一下本文中可能用到的对象和相关概念. import sys # 模块,sys指向这个模块对象import inspectdef foo(): pass # 函数,foo指向这个函数对象 class Cat(object): # 类,Cat指向这个类对象 def __init__(self, name='kitty'): self.name = name def sayHi(self): # 实例方法,sayHi指向这个方法对象,使用类或实例.sayHi访问

md5模块(Python内置模块)和hashlib模块

转自https://my.oschina.net/duhaizhang/blog/67214 MD5模块用于产生消息摘要,康用来判断文件是否相同. python的md5模块使用非常简单,包括以下几个函数: md5.new([arg]) 返回一个md5对象,如果给出参数,则相当于调用了update(arg) md5.md5(s) 返回字符串s的md5 md5.updte(arg) 用string参数arg更新md5对象.即将要计算arg的消息摘要值. md5.digest() 返回16字节的摘要,

python标准模块(time、datetime及hashlib模块)

一.time,datetime模块 时间相关的操作 1 import time 2 time.sleep(5) # ==> 停顿多少秒 3 print(time.time()) # ==> 返回时间戳,1970年1月1日之后的秒,seconds 4 print(time.ctime()) # ==> 返回字符串形式当前时区的当前时间 5 print(time.ctime(time.time()-86400)) # ==>时间换算,当前系统时间提前一天 6 print(time.gm

Python学习笔记——基础篇【第六周】——hashlib模块

常用模块之hashlib模块 用于加密相关的操作,3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法 import md5 hash = md5.new() hash.update('admin') print hash.hexdigest() MD5-废弃 import sha hash = sha.new() hash.update('admin') print hash.hexdigest() sha-废

python 正则,os,sys,hashlib模块

简单的小算法 random随机获取数据 import random def getrandata(num): a=[] i=0 while i<num: a.append(random.randint(0,100)) i+=1 return a print(getrandata(10)) 例: [5, 3, 38, 4, 69, 40, 94, 36, 14, 26] 冒泡排序 import getdata def bubbleSort(a): l=len(a)-2 i=0 while i<l

Python的hashlib模块学习

python的hashlib模块提供一些常用的加密功能 例如获取字符串'Nobody inspects the spammish repetition'的MD5校验值 In [48]: import hashlib In [49]: m=hashlib.md5() In [50]: m.update('Nobody inspects') In [51]: m.update('the spammish repetition') In [52]: m.digest() Out[52]: '%\x8d

处理xml模块、configparser模块、hashlib模块、subprocess模块

xml模块 新建a.xml内容为: <data> <country name="Liechtenstein"> <rank updated="yes">2</rank> <year updated="yes" version="1.0">2009</year> <gdppc>141100</gdppc> <neighbor d