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 json encode datetime类型
Dec 28 Python
判断网页编码的方法python版
Aug 12 Python
Python基本数据结构与用法详解【列表、元组、集合、字典】
Mar 23 Python
Python异常处理例题整理
Jul 07 Python
Python3实现汉语转换为汉语拼音
Jul 08 Python
执行Django数据迁移时报 1091错误及解决方法
Oct 14 Python
python双端队列原理、实现与使用方法分析
Nov 27 Python
python实现电子词典
Mar 03 Python
Python3+selenium实现cookie免密登录的示例代码
Mar 18 Python
Pytorch 使用 nii数据做输入数据的操作
May 26 Python
python xlsxwriter模块的使用
Dec 24 Python
浅谈怎么给Python添加类型标注
Jun 08 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实现的四则运算表达式计算实现代码
2011/08/02 PHP
php和js如何通过json互相传递数据相关问题探讨
2013/02/26 PHP
PHP抓取、分析国内视频网站的视频信息工具类
2014/04/02 PHP
destoon二次开发常用数据库操作
2014/06/21 PHP
PHP常用处理静态操作类
2015/04/03 PHP
PHP中把有符号整型转换为无符号整型方法
2015/05/27 PHP
php双层循环(九九乘法表)
2017/10/23 PHP
Laravel+Intervention实现上传图片功能示例
2019/07/09 PHP
JavaScript 动态生成方法的例子
2009/07/22 Javascript
深入理解JavaScript系列(4) 立即调用的函数表达式
2012/01/15 Javascript
jQuery学习笔记 操作jQuery对象 CSS处理
2012/09/19 Javascript
举例讲解JavaScript substring()的使用方法
2015/11/09 Javascript
JS 实现 ajax 异步浏览器兼容问题
2017/01/21 Javascript
Vue.js手风琴菜单组件开发实例
2017/05/16 Javascript
JavaScript实现的仿新浪微博原生态输入字数即时检查功能【兼容IE6】
2017/09/26 Javascript
vue实现验证码输入框组件
2017/12/14 Javascript
vue点击Dashboard不同内容 跳转到同一表格的实例
2020/11/13 Javascript
Python实现统计给定字符串中重复模式最高子串功能示例
2018/05/16 Python
python检索特定内容的文本文件实例
2018/06/05 Python
python开启摄像头以及深度学习实现目标检测方法
2018/08/03 Python
pycharm中使用anaconda部署python环境的方法步骤
2018/12/19 Python
Python日期时间Time模块实例详解
2019/04/15 Python
python pygame实现五子棋小游戏
2020/10/26 Python
Django Aggregation聚合使用方法解析
2019/08/01 Python
Python中最好用的命令行参数解析工具(argparse)
2019/08/23 Python
python pillow模块使用方法详解
2019/08/30 Python
Django Admin中增加导出CSV功能过程解析
2019/09/04 Python
解决pycharm下pyuic工具使用的问题
2020/04/08 Python
新西兰Bookabach:查找全球度假屋
2020/12/03 全球购物
计算机软件个人的自荐信范文
2013/12/01 职场文书
静心口服夜广告词
2014/03/20 职场文书
党员干部三严三实心得体会
2014/10/13 职场文书
四风问题党员个人整改措施
2014/10/27 职场文书
golang 实现并发求和
2021/05/08 Golang
Python实现简繁体转换
2021/06/07 Python
Windows Server 2008 修改远程登录端口以及配置防火墙
2022/04/28 Servers