这篇文章主要介绍了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加密模块教程_Python hashlib加密模块常用方法解析相关推荐

  1. 视频教程-快速入门Python基础教程_Python基础知识大全-Python

    快速入门Python基础教程_Python基础知识大全 十余年计算机技术领域从业经验,在中国电信.盛大游戏等多家五百强企业任职技术开发指导顾问,国内IT技术发展奠基人之一. 杨千锋 ¥99.00 立即 ...

  2. 视频教程-快速入门Python基础教程_Python基础进阶视频-Python

    快速入门Python基础教程_Python基础进阶视频 十余年计算机技术领域从业经验,在中国电信.盛大游戏等多家五百强企业任职技术开发指导顾问,国内IT技术发展奠基人之一. 杨千锋 ¥199.00 立 ...

  3. python教程是什么-Python基础教程_Python入门知识

    Python基础教程频道为编程初学者提供入门前的所有基础知识,必须要掌握的一些PYTHON基础语法语句,基本的数据类型. 让大家可以更快速.更容易理解的的方式掌握Python编程所需要的基础知识,灵活 ...

  4. python 3教程_Python 3 教程

    全屏 Python 3 教程 Python的3.0版本,常被称为Python 3000,或简称Py3k.相对于Python的早期版本,这是一个较大的升级.为了不带入过多的累赘,Python 3.0在设 ...

  5. python基础教程是什么-Python基础教程_Python入门知识

    Python基础教程频道为编程初学者提供入门前的所有基础知识,必须要掌握的一些PYTHON基础语法语句,基本的数据类型. 让大家可以更快速.更容易理解的的方式掌握Python编程所需要的基础知识,灵活 ...

  6. python后端教程_Python学习教程(技术干货):关于前后端分离开发入门

    原标题:Python学习教程(技术干货):关于前后端分离开发入门 对于程序员来说,其实Tab和空格远远不只是"立场"问题那么简单. 在不同的编辑器里tab的长度可能不一致,所以在一 ...

  7. python itchat教程_Python学习教程:教你用Python通过微信来控制电脑摄像头

    原标题:Python学习教程:教你用Python通过微信来控制电脑摄像头 如果说强大的标准库奠定了Python发展的基石,丰富的第三方库则是python不断发展的保证.今天的Python学习教程就来通 ...

  8. python getopt使用_Python命令行参数解析模块getopt使用实例

    这篇文章主要介绍了Python命令行参数解析模块getopt使用实例,本文讲解了使用语法格式.短选项参数实例.长选项参数实例等内容,需要的朋友可以参考下 格式 getopt(args, options ...

  9. python ctypes教程_python ctypes是什么

    ctypes是python的一个函数库,提供和C语言兼容的数据类型,可以直接调用动态链接库中的导出函数. 为了使用ctypes,必须依次完成以下步骤: ·加载动态链接库 ·将python对象转换成ct ...

最新文章

  1. 打印100~200 之间的素数
  2. 利用python爬虫(part16)--json解析模块
  3. c语言枚举入门,C语言入门之枚举与位运算(1)
  4. node.js 和 HTML5-Canvas 结合实现截图上传交互
  5. PHP5.3, PHP5.4, PHP5.5新特性
  6. 微信红包技术架构首次流出,贼牛逼啊!
  7. html 文字 向上滚动代码,文字向上滚动代码
  8. js函数传参——参数与arguments对象
  9. java求一元二次方程:ax2+bx+c=0的根
  10. eaxyexcel获取指定行,获取总行数
  11. 这个是什么错误,求大神解答
  12. 2018-2019年江苏省高等学校“阿里云大数据技术实战训练营”大学生万人计划学术冬令营开营... 1
  13. DataV实现大屏滚动含后端代码
  14. Windbg调试命令详解(2)
  15. 2023税务师DA考点抢先学
  16. HTML元素的宽度计算
  17. 厦门大学研究生计算机复试分数线,关于2018厦门大学研究生考试复试分数线的一些公告...
  18. Linux终端、关机、ldd、ldconfig等系统命令
  19. 原生js--选项卡全选反选,选项卡切换,模拟搜索框,微博发布(带时间),注册协议倒计时
  20. Amihud非流动性指标计算

热门文章

  1. AT指令:AT+CMGF
  2. 使用Maven前夕(Maven项目架构管理工具、配置环境变量、阿里云镜像、本地仓库)
  3. 循环匹配对应筛选(2)
  4. Open3d之文件IO
  5. spring源码解析bean定义五ContextNamespaceHandler一
  6. Unity ToLua 中Update的调用流程
  7. 亚信安全中标南方电网网络架构优化调整项目 智能联动抑制未知威胁
  8. 网络间谍在2017年被列为全球企业最为严重的威胁
  9. Android控件之HorizontalScrollView 去掉滚动条
  10. 【转】你用什么手机,你就是什么人品!!