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网络爬虫采集联想词示例
Feb 11 Python
在Python中编写数据库模块的教程
Apr 29 Python
python中的全局变量用法分析
Jun 09 Python
Python实现Sqlite将字段当做索引进行查询的方法
Jul 21 Python
Python正则表达式实现截取成对括号的方法
Jan 06 Python
Python中super函数的用法
Nov 17 Python
Python爬虫获取整个站点中的所有外部链接代码示例
Dec 26 Python
Python cookbook(数据结构与算法)根据字段将记录分组操作示例
Mar 19 Python
python实现密度聚类(模板代码+sklearn代码)
Apr 27 Python
python golang中grpc 使用示例代码详解
Jun 03 Python
python 用pandas实现数据透视表功能
Dec 21 Python
http通过StreamingHttpResponse完成连续的数据传输长链接方式
Feb 12 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
图书管理程序(三)
2006/10/09 PHP
PHP可逆加密/解密函数分享
2012/09/25 PHP
PHP中CURL方法curl_setopt()函数的参数分享
2013/01/19 PHP
header导出Excel应用示例
2014/01/24 PHP
php中错误处理操作实例分析
2019/08/23 PHP
jQuery 中关于CSS操作部分使用说明
2007/06/10 Javascript
『jQuery』.html(),.text()和.val()的概述及使用
2013/04/22 Javascript
jquery.messager.js插件导致页面抖动的解决方法
2013/07/14 Javascript
javascript中Date对象应用之简易日历实现
2016/07/12 Javascript
javascript类型系统——undefined和null全面了解
2016/07/13 Javascript
浅谈Nodejs应用主文件index.js
2016/08/28 NodeJs
Javascript6中字符串的四个新用法分享
2016/09/11 Javascript
网站申请不到支付宝接口、微信接口,免接口收款实现方式几种解决办法
2016/12/14 Javascript
微信小程序多列选择器range-key使用详解
2020/03/30 Javascript
基于nodejs res.end和res.send的区别
2018/05/14 NodeJs
Vue组件之极简的地址选择器的实现
2018/05/31 Javascript
使用ng-packagr打包Angular的方法示例
2018/09/21 Javascript
vue与django集成打包的实现方法
2019/11/11 Javascript
Python实现将HTML转换成doc格式文件的方法示例
2017/11/20 Python
python使用锁访问共享变量实例解析
2018/02/08 Python
Python实现查找最小的k个数示例【两种解法】
2019/01/08 Python
Python设计模式之策略模式实例详解
2019/01/21 Python
python3.4爬虫demo
2019/01/22 Python
python-itchat 统计微信群、好友数量,及原始消息数据的实例
2019/02/21 Python
TensorFlow实现自定义Op方式
2020/02/04 Python
BudgetAir印度:预订航班、酒店和汽车租赁
2019/07/07 全球购物
机电一体化职业规划书
2014/01/07 职场文书
体育节口号
2014/06/19 职场文书
2014旅游局领导班子四风问题对照检查材料思想汇报
2014/09/19 职场文书
山东省召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
加强作风建设心得体会
2014/10/22 职场文书
学生会生活部工作总结2015
2015/03/31 职场文书
工作收入证明模板
2015/06/12 职场文书
2015年大学迎新工作总结
2015/07/16 职场文书
导游词之崇武古城
2019/10/07 职场文书
JavaScript原型链中函数和对象的理解
2022/06/16 Javascript