Python模块——hashlib
简介
hashlib模块是用于对字符串进行加密,其可以把任意长度的数据转换为一个长度固定的数据串,且这种加密是不可逆的,故这种加密方式的安全性都很高。hash本质是一个函数,该模块提供了许多不同的加密算法,可查看其属性algorithms_guaranteed来获取,包括md5, sha1, sha224, sha256, sha384, sha512,使用非常简单、方便。该模块由python自带,故不需要自己安装。其中md5算法多用于对密码的加密,而sha1加密后的长度比md5更长,故安全性更高,但相应的运算速度就会变慢.
常用方法
- 数据加密:有两种方式,推荐使用第二种,因为这种加密算法直接hashlib点出来即可。
import hashlib
password = '18779385769wl'.encode()
result1 = hashlib.new('md5',password)
result2 = hashlib.md5(password)
print(result1)
print(result2)
<md5 HASH object @ 0xb71a6598>
<md5 HASH object @ 0xb71a6700>
可以看出,打印结果并不能得到加密后的数据,只是给出了其内存地址而已,hashlib给了专门的方法来获取加密的数据。在加密前给的密码我们记得要先编码为utf8.
- 获取加密后的数据:有两种方式,第一种以二进制形式返回,第二种以十六进制返回。
import hashlib
password = '18779385769wl'.encode()
result1 = hashlib.md5(password)
print (result1.digest())
print(type(result1.digest()))
print (result1.hexdigest())
print(type(result1.hexdigest()))
b'\xc6\x9bA\x05\xdaf%$\xf7\xe7\xd9\x1b\x13\xba\xf1\xad'
<class 'bytes'>
c69b4105da662524f7e7d91b13baf1ad
<class 'str'>
这里要讲一个知识点就是加盐salt,它的目的是加大加密的安全性,给一些简易的密码提高被破解的难度,其原理就是再原先密码的基础上再加上一串字符,如下代码所示:
import hashlib
salt = 'qweasd'.encode()
password = '18779385769wl'.encode()+salt
result = hashlib.md5(password)
print(result.digest())
print(result.hexdigest())
b',\xd9\xc1WE\x02(\xa927\xc1\xe3g\xc0\xfa&'
2cd9c157450228a93237c1e367c0fa26
- 标准给密码加密:该模块给了一个比较全面的方法来给密码加密。
salt = 'qweasd'.encode()
password = '18779315769wl'.encode()
res = hashlib.pbkdf2_hmac('md5',password,salt,100)#100是迭代次数,更加大了安全性
print(res)
print(type(res))
b'\x87\xe9\x92\xb2\x10l\x89OG\xc2~\xfe#N~\xf0'
<class 'bytes'>
该函数的返回结果就是加密后的数据,故可直接打印出来,这里不能用digest和hexdigest方法。
Python模块——hashlib的更多相关文章
- Python模块——HashLib与base64
摘要算法(hashlib) Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 什么是摘要算法呢?摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度 ...
- python模块: hashlib模块, configparse模块, logging模块,collections模块
一. hashlib模块 Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用 ...
- Python模块——HashLib(摘要算法)与base64
摘要算法(hashlib) Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 什么是摘要算法呢?摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度 ...
- Python模块hashlib
Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 什么是摘要算法呢?摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制 ...
- python模块——hashlib模块(简单文件摘要算法实现)
#!/usr/bin/env python # -*- coding:utf-8 -*- __author__ = "loki" # Usage: hashlib模块 import ...
- python模块hashlib & hmac
Hash,译做“散列”,也有直接音译为“哈希”的.把任意长度的输入,通过某种hash算法,变换成固定长度的输出,该输出就是散列值,也称摘要值.该算法就是哈希函数,也称摘要函数. MD5是最常见的摘要算 ...
- python模块hashlib、xlwt、pymysql
一.xlwt xlwt是python第三方模块,主要是对excel的写操作.xlwt使用时必须先安装. 1.安装 在操作系统的cmd窗口输入pip install xlwt回车即可在线安装. 安装完成 ...
- python模块--hashlib
用于加密相关的操作,3.x里代替了md5模块和sha模块,主要提供SHA1,SHA224,SHA256,SHA384,SHA512,MD5算法 import hashlib m = hashlib.m ...
- python 模块 hashlib(提供多个不同的加密算法)
hashlib是涉及安全散列和消息摘要,提供多个不同的加密算法借口,如SHA1.SHA224.SHA256.SHA384.SHA512.MD5等. import hashlib m = hashlib ...
随机推荐
- sublime text快速运行浏览web/html页面
安装View In Browser插件 快捷键 Ctrl+Shift+P(菜单栏Tools->Command Paletter),输入 pcip选中Install Package并回车,输入Vi ...
- skLearn 支持向量机
## 版权所有,转帖注明出处 章节 SciKit-Learn 加载数据集 SciKit-Learn 数据集基本信息 SciKit-Learn 使用matplotlib可视化数据 SciKit-Lear ...
- linux 命令之 objdump 简单使用
objdump 介绍 objdump命令是用查看目标文件或者可执行的目标文件的构成的gcc工具 objdump 选项介绍 --archive-headers -a 显示档案库的成员信息,类似ls -l ...
- linux shell的创建与启动
1.创建shell脚本,输入linux命令: touch my.sh 2.编辑shell脚本,输入linux命令: vi my.sh 3.在shell脚本进行编辑:顺便记一次Jenkins的自动启动的 ...
- 算法(第4版)Robert Sedgewick 刷题 第一章(1)
/** * @Description 颠倒数组排列顺序 * @author SEELE * @date 2017年8月17日 上午10:56:17 * @action sortArr */ publi ...
- 带你探索关于飞机Wi-Fi服务的神奇科学
资料来源: Colin Anderson制片公司/ Getty图片社 在35000英尺的高空冲浪?哇哦,这当然是我们现在所期望的飞行方式了.根据2018年全球旅行者研究(2018 Global Tra ...
- equals与hashcode分析
我们经常在面经中看到这样的问题,为什么重写equals方法就一定要重写hashcode方法.本文就是分析这个问题. <!--more--> 在阿里巴巴java开发手册中就给出了这样的规则. ...
- UVA - 10934 Dropping water balloons(装满水的气球)(dp)
题意:有k个气球,n层楼,求出至少需要多少次实验能确定气球的硬度.气球不会被实验所“磨损”. 分析: 1.dp[i][j]表示第i个气球,测试j次所能确定的最高楼层. 2.假设第i-1个气球测试j-1 ...
- (day 1)创建项目--3【创建应用】
创建步骤 1.打开命令行,进入项目中manage.py的同级目录 2.在命令行输入 python manage.py startapp blog 3.添加应用名到settings.py的INSTALL ...
- 安装adobe reader阅读器
首先 在我的网盘里有那个软件. 安装的教程在这个歌网址:http://www.zhanshaoyi.com/6730.html