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实现读取目录所有文件的文件名并保存到txt文件代码
Nov 22 Python
Python写的服务监控程序实例
Jan 31 Python
Python实现获取操作系统版本信息方法
Apr 08 Python
Python读写unicode文件的方法
Jul 10 Python
Django中url的反向查询的方法
Mar 14 Python
Python基于jieba库进行简单分词及词云功能实现方法
Jun 16 Python
使用python生成杨辉三角形的示例代码
Aug 29 Python
Python @property装饰器原理解析
Jan 22 Python
Python写出新冠状病毒确诊人数地图的方法
Feb 12 Python
python适合做数据挖掘吗
Jun 16 Python
Python docutils文档编译过程方法解析
Jun 23 Python
Python编写单元测试代码实例
Sep 10 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/12/30 PHP
深入php var_dump()函数的详解
2013/06/05 PHP
JS面向对象编程之对象使用分析
2010/08/19 Javascript
ASP.NET jQuery 实例3 (在TextBox里面阻止复制、剪切和粘贴事件)
2012/01/13 Javascript
js绑定事件this指向发生改变的问题解决方法
2013/04/23 Javascript
jquery实现保存已选用户
2014/07/21 Javascript
在JS数组特定索引处指定位置插入元素的技巧
2014/08/24 Javascript
JavaScript中的继承方式详解
2015/02/11 Javascript
JavaScript中字符串拼接的基本方法
2015/07/07 Javascript
JS中精巧的自动柯里化实现方法
2017/12/12 Javascript
jQuery实现购物车的总价计算和总价传值功能
2018/11/28 jQuery
详解Ant Design of React的安装和使用方法
2018/12/27 Javascript
微信小程序实现3D轮播图效果(非swiper组件)
2019/09/21 Javascript
JavaScript中while循环的基础使用教程
2020/08/11 Javascript
深入浅析ImageMagick命令执行漏洞
2016/10/11 Python
Python通过matplotlib画双层饼图及环形图简单示例
2017/12/15 Python
python使用tensorflow保存、加载和使用模型的方法
2018/01/31 Python
理论讲解python多进程并发编程
2018/02/09 Python
python中利用zfill方法自动给数字前面补0
2018/04/10 Python
Python使用pip安装pySerial串口通讯模块
2018/04/20 Python
从请求到响应过程中django都做了哪些处理
2018/08/01 Python
CSS3动画特效在活动页中的应用
2020/01/21 HTML / CSS
美国男女折扣服饰百货连锁店:Stein Mart
2017/05/02 全球购物
数据库连接池的工作原理
2012/09/26 面试题
小学运动会广播稿200字(十二篇)
2014/01/14 职场文书
大学校园毕业自我鉴定
2014/01/15 职场文书
先进德育工作者事迹材料
2014/01/24 职场文书
上课看小说检讨书
2014/02/22 职场文书
人民调解员先进事迹材料
2014/05/08 职场文书
县级文明单位申报材料
2014/05/23 职场文书
公司合作协议范文
2014/10/01 职场文书
2014年新农村建设工作总结
2014/12/01 职场文书
坎儿井导游词
2015/02/09 职场文书
2015年税务稽查工作总结
2015/05/26 职场文书
安全主题班会教案
2015/08/12 职场文书
22句经典语录:送给优柔寡断和胡思乱想的朋友们
2019/12/13 职场文书