哈希加密代码

#!/usr/bin/env python
# -*- coding;utf-8 -*-
"""
哈希加密模块中有很多算法,调用不同的算法执行不同的加密,只需要修改调用模块,其他代码不用修改
"""
import hashlib
# 对相同字符串进行相同加密算法会得到相同结果
# 为了提高加密效果自定义一个字符串,与要第一次加密的内容在进行加密
# 别人不知道已给的字符串,通过123执行加密得不到最后的密文
hash = hashlib.md5(bytes("你的生日", encoding="utf-8"))
hash.update(bytes("123", encoding="utf-8"))
print(hash.hexdigest())

 基于md5对密码加密实现登录和注册

#!/usr/bin/env python
# -*- coding;utf-8 -*-
import hashlib
"""
哈希加密模块中有很多算法,调用不同的算法执行不同的加密,只需要修改调用模块,其他代码不用修改
"""
"""
import hashlib
# 对相同字符串进行相同加密算法会得到相同结果
# 为了提高加密效果自定义一个字符串,与要第一次加密的内容在进行加密
# 别人不知道已给的字符串,通过123执行加密得不到最后的密文
hash = hashlib.md5(bytes("你的生日", encoding="utf-8"))
hash.update(bytes("123", encoding="utf-8"))
print(hash.hexdigest())
""" def md5(arg):
hash = hashlib.md5(bytes("你的生日", encoding="utf-8"))
hash.update(bytes(arg, encoding="utf-8"))
return hash.hexdigest() def login(user, pwd):
with open("db", "r", encoding="utf-8") as f:
for line in f:
a, b = line.split("|")
if a == user and b == md5(pwd):
return True
else:
return False def regiser(user, pwd):
with open("db", "a", encoding="utf-8") as f:
temp = user + "|" + md5(pwd) + "\n"
f.write(temp)
return True def inp():
user = input("请输入用户名:\n>>>")
pwd = input("请输入密码:\n>>>")
return user, pwd if __name__ == "__main__":
a = input("1、登录;2、注册\n>>>")
if a == str(1):
user, pwd = inp()
if login(user, pwd):
print("登陆成功!")
else:
print("登陆失败!")
elif a == str(2):
user, pwd = inp()
if regiser(user, pwd):
print("注册成功!")
else:
print("注册失败!")

  

python全栈开发:hashlib加密的更多相关文章

  1. python全栈开发-hashlib模块(数据加密)、suprocess模块、xml模块

    一.hashlib模块 1.什么叫hash:hash是一种算法(3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法 ...

  2. Python全栈开发【模块】

    Python全栈开发[模块] 本节内容: 模块介绍 time random os sys json & picle shelve XML hashlib ConfigParser loggin ...

  3. python全栈开发中级班全程笔记(第二模块、第四章)(常用模块导入)

    python全栈开发笔记第二模块 第四章 :常用模块(第二部分)     一.os 模块的 详解 1.os.getcwd()    :得到当前工作目录,即当前python解释器所在目录路径 impor ...

  4. python 全栈开发,Day99(作业讲解,DRF版本,DRF分页,DRF序列化进阶)

    昨日内容回顾 1. 为什么要做前后端分离? - 前后端交给不同的人来编写,职责划分明确. - API (IOS,安卓,PC,微信小程序...) - vue.js等框架编写前端时,会比之前写jQuery ...

  5. Python全栈开发【面向对象进阶】

    Python全栈开发[面向对象进阶] 本节内容: isinstance(obj,cls)和issubclass(sub,super) 反射 __setattr__,__delattr__,__geta ...

  6. Python全栈开发【面向对象】

    Python全栈开发[面向对象] 本节内容: 三大编程范式 面向对象设计与面向对象编程 类和对象 静态属性.类方法.静态方法 类组合 继承 多态 封装 三大编程范式 三大编程范式: 1.面向过程编程 ...

  7. Python全栈开发【基础四】

    Python全栈开发[基础四] 本节内容: 匿名函数(lambda) 函数式编程(map,filter,reduce) 文件处理 迭代器 三元表达式 列表解析与生成器表达式 生成器 匿名函数 lamb ...

  8. Python全栈开发【基础三】

    Python全栈开发[基础三]  本节内容: 函数(全局与局部变量) 递归 内置函数 函数 一.定义和使用 函数最重要的是减少代码的重用性和增强代码可读性 def 函数名(参数): ... 函数体 . ...

  9. Python全栈开发【基础二】

    Python全栈开发[基础二] 本节内容: Python 运算符(算术运算.比较运算.赋值运算.逻辑运算.成员运算) 基本数据类型(数字.布尔值.字符串.列表.元组.字典) 其他(编码,range,f ...

  10. Python全栈开发【基础一】

    Python全栈开发[第一篇] 本节内容: Python 的种类 Python 的环境 Python 入门(解释器.编码.变量.input输入.if流程控制与缩进.while循环) if流程控制与wh ...

随机推荐

  1. vue中利用scss实现整体换肤和字体大小设置

    一.前言 利用Sass预处理实现换肤和字体大小调整. 思路及达到的效果:字体大小的适配使用window.devicePixelRatio的值和需要调整的差量进行控制.页面初始化是的字体适配可以根据de ...

  2. <Java编程思想>读书笔记(1)-对象导论、一切都是对象

    1.面向对象编程:OOP (Object-oriented Programming) 2.Alan Kay 总结的面向对象语言5个基本特性: 1) 万物皆为对象 2) 程序是对象的集合,他们通过发送消 ...

  3. P1566 加等式

    P1566 加等式 题目描述 对于一个整数集合,我们定义“加等式”如下:集合中的某一个元素可以表示成集合内其他元素之和.如集合{1,2,3}中就有一个加等式:3=1+2,而且3=1+2 和3=2+1是 ...

  4. Python module中的全局变量

    Python module中的全局变量 我想要实现一个python module,这个module中有一些配置项,这些配置项可以被读取,被修改.一个可行的方案是把这些配置项写到一个叫settings. ...

  5. java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)

    :: - [localhost-startStop-] INFO - Root WebApplicationContext: initialization started -- :: - [local ...

  6. Rabbit MQ 基础入门

    Rabbit MQ 学习(一)基础入门 简介 RabbitMQ 简介 为什么选择 RabbitMQ RabbitMQ 的模型架构是什么? AMQP 协议是什么? AMQP 常用命令 概念 生产者和消费 ...

  7. css中图片有缩放和转动效果

    现在html中利用div来包裹住一张图片. <div class="xuanzhuan"> <img src="images/top.png" ...

  8. 注解到处excel

    package com.cxy.domain.poi; import java.lang.annotation.ElementType; import java.lang.annotation.Ret ...

  9. 【转】Java程序CPU飙升问题排查方法

    windows环境下cpu飙升问题 线上某台runtime机器(windows Server)cpu报警,这种情况初步就是代码里面死循环了,先把机器下线了保证不再有新的任务分配进来,然而cpu使用依然 ...

  10. linux段位进阶

    1.青铜: 1.Linux基础知识.基本命令(起源.组成.常用命令如cp.ls.file.mkdir等常见操作命令) 2.Linux用户及权限基础 3.Linux系统进程管理进阶 4.linux高效文 ...