python MD5加密的示例


Posted in Python onOctober 19, 2020

什么是MD5

Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。该算法的文件号为RFC 1321(R.Rivest,MIT Laboratory for Computer Science and RSA Data Security Inc. April 1992)。

MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD5实现。将数据(如汉字)运算为另一固定长度值,是杂凑算法的基础原理,MD5的前身有MD2、MD3和MD4。

MD5的作用是让大容量信息在用数字签名软件签署私人密钥前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的十六进制数字串)。除了MD5以外,其中比较有名的还有sha-1、RIPEMD以及Haval等。

生成MD5

# 方式一:
pwd = '123456'
# 生成MD5对象
md5 = hashlib.md5()
# 对数据加密
md5.update(pwd.encode('utf-8'))
# 获取密文
pwd = md5.hexdigest()
print(pwd)

#方式二:

pwd = '123456'
pwd = hashlib.md5(bytes(pwd,encoding = 'utf-8'))
print(pwd.hexdigest())



# 输出结果
e10adc3949ba59abbe56e057f20f883e
e10adc3949ba59abbe56e057f20f883e

密码破解

https://www.cmd5.com/

MD5加盐值(SALT)

# MD5加盐值(SALT)


pwd = '123456'
# 生成MD5对象
md5 = hashlib.md5(b'~!@@#!#$DFDT@#$@#')
# 一下两种方式与上面效果等同
# md5 = hashlib.md5('~!@@#!#$DFDT@#$@#'.encode('utf-8'))
# md5 = hashlib.md5(bytes('~!@@#!#$DFDT@#$@#',encoding='utf-8'))
#

# 对数据加密
md5.update(pwd.encode('utf-8'))
# 获取密文
pwd = md5.hexdigest()
print(pwd)63e87e46fc935f18abb6b38bb0376fee

安全性会好一些。

python MD5加密的示例

实例

# FileName : md5_salt.py
# Author  : Adil
# DateTime : 2020/4/26 5:25 PM
# SoftWare : PyCharm


from random import Random
from hashlib import md5


# 获取由4位随机大小写字母、数字组成的salt值
def create_salt(length=4):
  salt = ''
  chars = 'AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz0123456789'
  len_chars = len(chars) - 1
  random = Random()
  for i in range(length):
    # 每次从chars中随机取一位
    salt += chars[random.randint(0, len_chars)]
  return salt


# 获取原始密码+salt的md5值
def create_md5(pwd, salt):
  md5_obj = md5()
  md5_obj.update(pwd + salt)
  return md5_obj.hexdigest()


# 原始密码
pwd = '20141124'
# 随机生成4位salt
# salt = create_salt()
# d0ac42aa5c4d6b7a7783003b60eedf43
salt = create_salt()
# 加密后的密码
md5 = create_md5(bytes(pwd,encoding='utf-8'), bytes(salt,encoding='utf-8'))

print('[pwd]\n', pwd)
print('[salt]\n', salt)
print('[md5]\n', md5)

以上就是python MD5加密的示例的详细内容,更多关于python MD5加密的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python实现跨文件全局变量的方法
Jul 07 Python
python解析xml文件操作实例
Oct 05 Python
Python中的自省(反射)详解
Jun 02 Python
Python获取文件所在目录和文件名的方法
Jan 12 Python
python3中bytes和string之间的互相转换
Feb 09 Python
Python编程实现使用线性回归预测数据
Dec 07 Python
Django框架自定义session处理操作示例
May 27 Python
django与vue的完美结合_实现前后端的分离开发之后在整合的方法
Aug 12 Python
python实现证件照换底功能
Aug 20 Python
Python实现微信中找回好友、群聊用户撤回的消息功能示例
Aug 23 Python
Python 日志logging模块用法简单示例
Oct 18 Python
简单了解django处理跨域请求最佳解决方案
Mar 25 Python
python Yaml、Json、Dict之间的转化
Oct 19 #Python
Python pip 常用命令汇总
Oct 19 #Python
Python环境使用OpenCV检测人脸实现教程
Oct 19 #Python
python Tornado框架的使用示例
Oct 19 #Python
python mock测试的示例
Oct 19 #Python
python 提高开发效率的5个小技巧
Oct 19 #Python
python 利用toapi库自动生成api
Oct 19 #Python
You might like
收听困难?教您超简便短波广播抗干扰方法!
2021/03/01 无线电
第1次亲密接触PHP5(1)
2006/10/09 PHP
jquery获取自定义属性(attr和prop)实例介绍
2013/04/21 Javascript
原生js仿jq判断当前浏览器是否为ie,精确到ie6~8
2014/08/30 Javascript
将页面table内容与样式另存成excel文件的方法
2015/08/05 Javascript
javascript实现鼠标放上后下边对应内容变换的效果
2015/08/06 Javascript
Javascript技术难点之apply,call与this之间的衔接
2015/12/04 Javascript
jQuery基本过滤选择器用法示例
2016/09/09 Javascript
javascript实现将数字转成千分位的方法小结【5种方式】
2016/12/11 Javascript
iscroll实现下拉刷新功能
2017/07/18 Javascript
详解node单线程实现高并发原理与node异步I/O
2017/09/21 Javascript
NodeJS爬虫实例之糗事百科
2017/12/14 NodeJs
记一次vue-webpack项目优化实践详解
2019/02/17 Javascript
微信小程序工具函数封装
2019/10/28 Javascript
javascript实现贪吃蛇小游戏
2020/07/28 Javascript
JavaScript this关键字的深入详解
2021/01/14 Javascript
python判断给定的字符串是否是有效日期的方法
2015/05/13 Python
解决python selenium3启动不了firefox的问题
2018/10/13 Python
Python函数装饰器常见使用方法实例详解
2019/03/30 Python
Python在OpenCV里实现极坐标变换功能
2019/09/02 Python
python实现大战外星人小游戏实例代码
2019/12/26 Python
Tensorflow:转置函数 transpose的使用详解
2020/02/11 Python
Python计算指定日期是今年的第几天(三种方法)
2020/03/26 Python
HTML5+CSS3实现机器猫
2016/10/17 HTML / CSS
Scholastic父母商店:儿童书籍
2017/01/01 全球购物
如何获取某个日期是当月的最后一天
2013/12/05 面试题
Ruby如何进行文件操作
2014/07/17 面试题
大学生职业生涯规划书模板
2014/01/18 职场文书
《太阳》教学反思
2014/02/21 职场文书
代理协议书范本
2014/04/22 职场文书
2015年青年志愿者工作总结
2015/05/20 职场文书
生日赠语
2015/06/23 职场文书
驾驶员安全责任协议书
2016/03/22 职场文书
mysql优化
2021/04/06 MySQL
Python采集爬取京东商品信息和评论并存入MySQL
2022/04/12 Python
win10忘记pin密码登录不了怎么办?win10忘记pin密码登不进去的解决方法
2022/07/07 数码科技