hashlib 库
hashlib 库
hash 是一种算法,用来接收一系列数据,经过计算后得到一个hash值
hash值的三大特征:
1. 如果传入的数据一样,得到的hash值一样
2. 只要采用的hash算法固定,无论传多少内容hash值的长度是固定的
3. hash值不可逆,不能通过hash值倒推出内容
hash用途:
特征一和特征二: 效验文件是否完整,比较hash值是否一样
特征三:用于加密, 将密码===> hash值(hash值不可逆) (可以将密码按百分比拆开,加盐然后算hash值)
import hashlib
m=hashlib.md5() # 括号内也可以传内容
m.update('str1',encode('utf-8')) # 必须是bytes类型
m.update('str2',encode('utf-8')) # 内容可以分开放进去
print(m.hexdigest()) 将文件加密:
import hashlib
with open('r.txt','rb')
m=hashlib.md5()
for line in f:
m.update(line)
print(m.hexdigest())
补充: 逐行打开文件,速度太慢,一般都选择抽样进行效验
hashlib 库的更多相关文章
- python3的hashlib库sha256、pbkdf2_hmac、blake2b基本用法
hashlib.sha256: import hashlib x = hashlib.sha256()x.update(b"asd")print("x_1 = " ...
- hashlib库的使用
这个模块实现了许多不同的安全哈希和消息摘要算法的通用接口.包括FIPS安全哈希算法SHA1.SHA224.SHA256.SHA384和SHA512(在FIPS 180-2中定义)以及RSA的MD5算法 ...
- Python内置模块之time、random、hashlib、OS、sys、UUID模块
Python常用模块 1.time模块 在Python中,通常有这三种方式来表示时间:时间戳.元组(struct_time).格式化的时间字符串: (1)时间戳(timestamp) :通常来说,时间 ...
- 笔记-算法-hash以及hashlib使用
算法-hash和hash表以及hashlib使用 1. 简介 1.1. hash Hash(散列/哈希),就是把任意长度的输入(预映射pre-image)通过散列算法变换成固定长度的输 ...
- hashlib加密
一.hashlib的基本组成: 1.hashlib库是python3的标准库,主要用于数据的加密,以下是hashlib的方法及属性. >>> import hashlib>&g ...
- Python 用hashlib求中文字符串的MD5值 (转自 haungrui的专栏)
使用过hashlib库的朋友想必都遇到过以下的错误吧:“Unicode-objects must be encoded before hashing”,意思是在进行md5哈希运算前,需要对数据进行编码 ...
- python中常用的导包的方法和常用的库
python中常用的导包的方法 导入包和包名的方法:1.import package.module 2.from package.module import * 例一: ...
- python2 => python3 踩坑集合
报错内容: ModuleNotFoundError: No module named 'md5' 解析: 这是 python2 的库,python3 已经把它包含进 hashlib 库里了 解决方法 ...
- Django用户登录与注册系统
一.创建项目 1.1.创建项目和app python manage.py startproject mysite_login python manage.py startapp login 1.2.设 ...
随机推荐
- Codeforces 786 C. Till I Collapse
题目链接:http://codeforces.com/contest/786/problem/C 大力膜了一发杜教的代码感觉十分的兹瓷啊! 我们知道如果$k$是给定的我们显然是可以直接一遍$O(n)$ ...
- 前端html5/css基础知识
https://www.cnblogs.com/clschao/articles/10073124.html
- Android自定义权限
一.自定义权限 自定义权限,一般是考虑到应用共享组件时的安全问题.我们知道在四大组件 AndroidManifest 中注册的时候,添加 exported = "true" 这一属 ...
- ButterKnife RadioGroup选择事件
ButterKnife 的点击事件都很清晰,在使用RadioGroup控件时的方法: <!-- 定义一组单选框 --> <RadioGroup android:id="@+ ...
- CPU、OpenGL/DirectorX、显卡驱动和GPU之间的关系
- Interval 间隔问题
2018-09-07 09:03:14 一.Merge Intervals 问题描述: 问题求解: public List<Interval> merge(List<Interval ...
- 在shell终端操作oracle数据库的常用命令
这里面是在一个项目中用到的操作oracle数据库的常用linux命令,因为当时无法用plsql远程连接,大部分操作都需要在命令行窗口进行,总结一下 第一种方式 (1)先切换至sqlplus [orac ...
- clustering
搞了将近一年的单细胞,聚类也是自认为得心应手了,自信满满. 但是多半是跑软件,对聚类的深层次的思想不甚了了. Google了一下clustering,看了一篇文章,突然了解到了clustering的算 ...
- ActionCable的部署(参考Gorails)
Gorails视频 https://gorails.com/deploy/actioncable Action Cable – Integrated WebSockets for Rails http ...
- android-------Java 常问的基础面试题
1."=="和equals方法究竟有什么区别? ==操作符专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同,要比较两个基本类型的数据或两个 ...