hashlib(加盐)回炉练习
简介:
用于加密相关的操作,代替了md5模块和sha模块,主要提供SHA1,SHA224,SHA256,SHA384,SHA512,MD5算法。
在python3中已经废弃了md5和sha模块,简单说明下md5和sha的使用。
什么是摘要算法呢?
摘要算法又称为哈希算法,散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)用于加密相关的操作。
只是写了简单的加盐思路
__author__ = 'ZHHT'
#!/usr/bin/env python
# -*- coding:utf-8 -*- import hashlib import random Salt_A = input("请输入你的用户名:")
Salt_B = str(random.randint(1,999))
Salt = Salt_A+Salt_B #不加盐的值
m = hashlib.md5()
m.update(bytes('abc',encoding='utf-8'))
print(m.hexdigest())
#结果:900150983cd24fb0d6963f7d28e17f72 #加盐的值
h = hashlib.md5(bytes(Salt,encoding='utf8'))
h.update(bytes('abc',encoding='utf-8'))
print(h.hexdigest())
#结果:3a002a8cc8d1e7414f1e6638e780da87
hashlib(加盐)回炉练习的更多相关文章
- hashlib模块-加密的模块,加盐
1.MD5加密 md5加密是不可逆的 print(dir(m)) #把变量的方法打印出来 hashlib.md5:加密xx.hexdigest():返回密文xx.encode:将字符串转成二进制的,转 ...
- 模块 -- 序列化 hashlib sha logging (加密 加盐 )
模块: 一个py文件就是一个模块 模块分类: 1:内置模块,登录模块,时间模块,sys模块,os模块等等 2: 扩展模块, 3:自定义模块,自己写的py文件 python 开发效率之高:python ...
- hashlib 文件校验,MD5动态加盐返回加密后字符
hashlib 文件校验 # for循环校验 import hashlib def check_md5(file): ret = hashlib.md5() with open(file, mode= ...
- 日志模块详细介绍 hashlib模块 动态加盐
目录 一:hashlib模块 二:logging 一:hashlib模块 加密: 将明文数据通过一系列算法变成密文数据(目的就是为了数据的安全) 能够做文件一系列校验 python的hashlib提供 ...
- 消息摘要、哈希(hash)、加盐
hashlib 算法介绍: python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 什么是摘要算法呢?摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度 ...
- Python学习笔记(七)加密加盐
MD5加密和加盐 Python的MD5加密 Python的hashlib模块的MD5加密,是比较简单一种加密,md5函数必须传入编译后的结果,否则会报错: Traceback (most recent ...
- Flask_generate_password_hash的加盐哈希加密算法与check_password_hash的校验
密码加密简介 密码存储的主要形式: 明文存储:肉眼就可以识别,没有任何安全性. 加密存储:通过一定的变换形式,使得密码原文不易被识别. 密码加密的几类方式: 明文转码加密算法:BASE64, 7BIT ...
- 一种简单的md5加盐加密的方法(防止彩虹表撞库)
md5加密(或者说摘要算法)大家都很熟悉了 就不解释了 现在很多数据库设计都喜欢用单向加密的方式保存密码,验证时对提交的密码再次加密之后做密文对比 /// <summary> 使用MD5加 ...
- 加盐加密salt
加盐加密是一种对系统登录口令的加密方式,它实现的方式是将每一个口令同一个叫做”盐“(salt)的n位随机数相关联. 加盐加密是一种对系统登录口令的加密方式,它实现的方式是将每一个口令同一个叫做”盐“( ...
随机推荐
- TTS API 使用
#define SPCAT_VOICES L"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Speech\\Voices" ...
- java 最佳实践
一: 不要直接new一个thread,应当使用线程池.使用线程池的时候应当对线程数量大小合理设置,一般最大不超过50个,当然还需要考虑你的IO和CPU,怎么分析网上搜搜吧. 二:容器类变量,如果变化比 ...
- Struts result param详细设置
<</span>result type="json"> <</span>param name="root">da ...
- linux下删除3分钟之前指定文件夹下的指定类型文件
如果想要修改crontab,一般做以下的几步就可以了 将crontab 推到一个自定义的文件上 crontab -l>;tmp 编辑这个文件,做需要的修改 vi tmp 推回crontab cr ...
- 懒人模式开启Android模块自动化Api之旅
推荐阅读: 滴滴Booster移动App质量优化框架-学习之旅 一 Android 模块Api化演练 不一样视角的Glide剖析(一) 在将业务进行模块化时,避免不了模块页面路由和模块通信, 大多数我 ...
- C#阵列Array排序
五一假期回来,练习一下C#的一些知识,了解一下排序. 练习数据: , , , , , , , , }; 写一个类: using System; using System.Collections.Gen ...
- 讨论:研发团队到底应该是制定OKR还是制定KPI?
在讨论之前我们先来了解两个概念: 一.KPI KPI是一套绩效管理的方法.全称为:Key Performance Indicator.中文叫:关键绩效指标. KPI,和我们的“任务分解”不同.任务分解 ...
- 推荐一款让你纵横Github的读码神器
当我们想深入了解一个开源项目的时候,通常我们有以下几种姿势: 懒汉型 通过Web的方式,逐个的点击页面寻找和查看具体的源码内容. 优点:不依赖任何工具,无须任何额外的操作 缺点:效率低下,查找文件不便 ...
- [openjudge] 1455:An Easy Problem 贪心
描述As we known, data stored in the computers is in binary form. The problem we discuss now is about t ...
- $(this).index()与$(obj).index(this)的区别
<div> <b>this is b</b> </div> <div> <p>this is span</p> &l ...