Python hashlib加密模块常用方法解析


Posted in Python onDecember 18, 2019

这篇文章主要介绍了Python hashlib加密模块常用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

主要用于对字符串的加密,最常用的为MD5加密:

import hashlib
 
def get_md5(data):
  obj = hashlib.md5()
  obj.update(data.encode('utf-8'))
  result = obj.hexdigest()
  return result
val = get_md5('123') #这里放入要加密的字符串文字。
print(val)

如果要避免撞库的行为,可以加盐将加密数值改为更加复杂的,这样破译起来更加不容易。 

import hashlib
 
def get_md5(data):
  obj = hashlib.md5('abclasjd;flasdkfhowheofwa123113'.encode('utf-8')) #这里加盐
  obj.update(data.encode('utf-8'))
  result = obj.hexdigest()
  return result
val = get_md5('123') #这里放入要加密的字符串文字。
print(val)

案例:

说明:用户输入新建的用户名和密码,以MD5加密的形式存入文件中。再让用户输入用户名密码进行匹配。

#!/usr/bin/env python
# _*_ coding=utf-8 _*_
import hashlib
def get_md5(data):
  '''
  登录加密,将传入的密码进行加密处理,并返回值。
  :param data: 用户的密码
  :return: 返回MD5加密后的密码
  '''
  obj = hashlib.md5('abclasjd;flasdkfhowheofwa123113'.encode('utf-8')) #这里加盐
  obj.update(data.encode('utf-8'))
  result = obj.hexdigest()
  return result
def seve_user(username,password):
  '''
  将加密后的密码和用户名进行保存,以| 来分割,文件为test.txt
  :param username: 需要创建的用户名
  :param password: MD5后的密码
  :return: 需要更改的地方,return判断是否保存成功。
  '''
  user_list = [username,get_md5(password)]
  lis = '|'.join(user_list)
  with open('test.txt',encoding='utf-8',mode='a')as f:
    f.write(lis+'\n')
def read_user(username,password):
  '''
  来判断用户登录所输入的用户名和是否正确。
  :param username: 用户输入的用户名
  :param password: MD5加密后的密码
  :return: 如果匹配返回True
  '''
  with open('test.txt',mode='r',encoding='utf-8') as f:
    for item in f:
      infomation = item.strip()
      user,pwd = infomation.split('|')
      if username == user and password == pwd:
        return True
while True:
  '''
  循环需要创建的用户
  '''
  user =input('请输入用户名:')
  if user.upper() == 'N':
    break
  pwd = input('请输入密码:')
  if len(user) and len(pwd) < 8:
   print('用户名密码不符合要求,请重新输入。')
  else:
    seve_user(user,pwd)
while True:
  '''
  循环用户登录
  '''
  user_name = input('请输入用户名:')
  password = input('请输入密码:')
  start_user = read_user(user_name,get_md5(password))
  if start_user:
    print('登录成功')
    break
  else:
    print('登录失败')

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python自动登录126邮箱的方法
Jul 10 Python
用Python写冒泡排序代码
Apr 12 Python
python将ansible配置转为json格式实例代码
May 15 Python
Anaconda 离线安装 python 包的操作方法
Jun 11 Python
浅谈python 导入模块和解决文件句柄找不到问题
Dec 15 Python
python SVM 线性分类模型的实现
Jul 19 Python
Python Pandas数据中对时间的操作
Jul 30 Python
python中append实例用法总结
Jul 30 Python
Python3连接Mysql8.0遇到的问题及处理步骤
Feb 17 Python
解决Python中报错TypeError: must be str, not bytes问题
Apr 07 Python
Python 实现集合Set的示例
Dec 21 Python
Python开发简易五子棋小游戏
May 02 Python
Python实现中值滤波去噪方式
Dec 18 #Python
详解Python中字符串前“b”,“r”,“u”,“f”的作用
Dec 18 #Python
Python字典底层实现原理详解
Dec 18 #Python
Python利用PyExecJS库执行JS函数的案例分析
Dec 18 #Python
简单介绍django提供的加密算法
Dec 18 #Python
详解从Django Allauth中进行登录改造小结
Dec 18 #Python
解决pycharm最左侧Tool Buttons显示不全的问题
Dec 17 #Python
You might like
我用php+mysql写的留言本
2006/10/09 PHP
PHP企业级应用之常见缓存技术篇
2011/01/27 PHP
PHP编程快速实现数组去重的方法详解
2017/07/22 PHP
jQuery $.each的用法说明
2010/03/22 Javascript
利用jQuery插件扩展识别浏览器内核与外壳的类型和版本的实现代码
2011/10/22 Javascript
JavaScript中圆括号()和方括号[]的特殊用法疑问解答
2013/08/06 Javascript
JavaScript字符串对象的concat方法实例(用于连接两个或多个字符串)
2014/10/16 Javascript
js 右侧浮动层效果实现代码(跟随滚动)
2015/11/22 Javascript
jQuery实现的倒计时效果实例小结
2016/04/16 Javascript
Vue监听数据对象变化源码
2017/03/09 Javascript
React Js 微信禁止复制链接分享禁止隐藏右上角菜单功能
2017/05/26 Javascript
JQuery form表单提交前验证单选框是否选中、删除记录时验证经验总结(整理)
2017/06/09 jQuery
Node.js 中使用 async 函数的方法
2017/11/20 Javascript
Angular4的输入属性与输出属性实例详解
2017/11/29 Javascript
vue脚手架搭建过程图解
2018/06/06 Javascript
vue主动刷新页面及列表数据删除后的刷新实例
2018/09/16 Javascript
vue-video-player 解决微信自动全屏播放问题(横竖屏导致样式错乱问题)
2020/02/25 Javascript
javascript前端和后台进行数据交互方法示例
2020/08/07 Javascript
[06:25]DOTA2英雄梦之声_第17期_大地之灵
2014/06/20 DOTA
Python读取图片为16进制表示简单代码
2018/01/19 Python
Python内置模块logging用法实例分析
2018/02/12 Python
用python 批量更改图像尺寸到统一大小的方法
2018/03/31 Python
PyCharm设置Ipython交互环境和宏快捷键进行数据分析图文详解
2020/04/23 Python
Java多线程实现四种方式原理详解
2020/06/02 Python
浅析Python迭代器的高级用法
2020/07/16 Python
阿联酋彩妆品牌:OUD MILANO
2019/10/06 全球购物
Guess荷兰官网:美国服饰品牌
2020/01/22 全球购物
中学生校园广播稿
2014/01/16 职场文书
员工考核评语大全
2014/04/26 职场文书
领导干部整治奢华浪费之风思想汇报
2014/10/07 职场文书
学校党委干部个人对照检查材料思想汇报
2014/10/09 职场文书
机关职员工作检讨书
2014/10/23 职场文书
同学毕业留言寄语
2015/02/27 职场文书
2015年城管执法工作总结
2015/07/23 职场文书
Pytorch实现图像识别之数字识别(附详细注释)
2021/05/11 Python
python编程实现清理微信重复缓存文件
2021/11/01 Python