python全栈开发:hashlib加密
哈希加密代码
#!/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加密的更多相关文章
- python全栈开发-hashlib模块(数据加密)、suprocess模块、xml模块
一.hashlib模块 1.什么叫hash:hash是一种算法(3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法 ...
- Python全栈开发【模块】
Python全栈开发[模块] 本节内容: 模块介绍 time random os sys json & picle shelve XML hashlib ConfigParser loggin ...
- python全栈开发中级班全程笔记(第二模块、第四章)(常用模块导入)
python全栈开发笔记第二模块 第四章 :常用模块(第二部分) 一.os 模块的 详解 1.os.getcwd() :得到当前工作目录,即当前python解释器所在目录路径 impor ...
- python 全栈开发,Day99(作业讲解,DRF版本,DRF分页,DRF序列化进阶)
昨日内容回顾 1. 为什么要做前后端分离? - 前后端交给不同的人来编写,职责划分明确. - API (IOS,安卓,PC,微信小程序...) - vue.js等框架编写前端时,会比之前写jQuery ...
- Python全栈开发【面向对象进阶】
Python全栈开发[面向对象进阶] 本节内容: isinstance(obj,cls)和issubclass(sub,super) 反射 __setattr__,__delattr__,__geta ...
- Python全栈开发【面向对象】
Python全栈开发[面向对象] 本节内容: 三大编程范式 面向对象设计与面向对象编程 类和对象 静态属性.类方法.静态方法 类组合 继承 多态 封装 三大编程范式 三大编程范式: 1.面向过程编程 ...
- Python全栈开发【基础四】
Python全栈开发[基础四] 本节内容: 匿名函数(lambda) 函数式编程(map,filter,reduce) 文件处理 迭代器 三元表达式 列表解析与生成器表达式 生成器 匿名函数 lamb ...
- Python全栈开发【基础三】
Python全栈开发[基础三] 本节内容: 函数(全局与局部变量) 递归 内置函数 函数 一.定义和使用 函数最重要的是减少代码的重用性和增强代码可读性 def 函数名(参数): ... 函数体 . ...
- Python全栈开发【基础二】
Python全栈开发[基础二] 本节内容: Python 运算符(算术运算.比较运算.赋值运算.逻辑运算.成员运算) 基本数据类型(数字.布尔值.字符串.列表.元组.字典) 其他(编码,range,f ...
- Python全栈开发【基础一】
Python全栈开发[第一篇] 本节内容: Python 的种类 Python 的环境 Python 入门(解释器.编码.变量.input输入.if流程控制与缩进.while循环) if流程控制与wh ...
随机推荐
- NX二次开发-NXOPEN工程图导出CAD图纸DxfdwgCreator *dxfdwgCreator1;
没有什么可以看的,NXOPEN直接录制一下导出CAD就可以了.录制出来自己挑需要的代码拿过来改一下. NX9+VS2012 #include <NXOpen/Part.hxx> #incl ...
- hdu多校第九场 1002 (hdu6681) Rikka with Cake 树状数组维护区间和/离散化
题意: 在一块长方形蛋糕上切若干刀,每一刀都是从长方形某条边开始,垂直于这条边,但不切到对边,求把长方形切成了多少块. 题解: 块数=交点数+1 因为对于每个交点,唯一且不重复地对应着一块蛋糕. 就是 ...
- AsyncCallback IAsyncResult
using System; using System.Threading; using System.Collections.Generic; using System.Windows.Forms; ...
- MPU-6000 与 MPU-6050
VLOGIC 是什么呢?
- 6.4 Data Types
Table 6-1 lists the size, representation, and range of each scalar data type for the C28x compiler. ...
- Python3 From Zero——{最初的意识:002~字符串和文本}
一.使用多个界定符分割字符串 字符串.split(',')形式只适用于单一分割符的情况:多分割符同时应用的时候,可使用re.split() >>> line = 'asdf fjdk ...
- sql实现取汉字大写首字母
)) ) AS BEGIN DECLARE @py TABLE( ch ), hz1 ) COLLATE Chinese_PRC_CS_AS_KS_WS, hz2 ) COLLATE Chinese_ ...
- 2018湘潭大学程序设计竞赛【D】
题目链接:https://www.nowcoder.com/acm/contest/105/D 题意:就是数的fib表示方法.按权展开,又按二进制算出结果输出. 题解:贪心和数论吧.找到跟数最接近的f ...
- arm-linux-strip 的使用
3.2.1 1. 移除所有的符号信息 [arm@localhost gcc]#cp hello hello1 [arm@localhost gcc]#armlinuxstrip strip ...
- 【笔记篇】斜率优化dp(一) HNOI2008玩具装箱
斜率优化dp 本来想直接肝这玩意的结果还是被忽悠着做了两道数论 现在整天浑浑噩噩无心学习甚至都不是太想颓废是不是药丸的表现 各位要知道我就是故意要打删除线并不是因为排版错乱 反正就是一个del标签嘛并 ...