Python简要标准库(5)
hashlib
Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等。
基本的生成MD密匙的函数
import hashlib md5 = hashlib.md5()
md5.update('This is my password'.encode('utf-8'))
print(md5.hexdigest())
aaarticlea/png;base64,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" alt="" />
若是把password改为了password2
aaarticlea/png;base64,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" alt="" />
所得到的MD5就完全不一样了
这体现了MD5的单向加密功能的强大
若要生成SHA1密匙的话,只需要将功能函数替换即可
sha1 = hashlib.sha1()
根据用户输入的登录名和口令模拟用户注册,计算更安全的MD5
使用了shelve模块 存储上次的用户数据信息
import hashlib
import shelve #注册账号到数据库中 之前检测是否有重复
def Register(db,username,password):
if username in db.keys():
print ('find the same username : ')
return #生成MD5密匙
md5 = hashlib.md5()
md5.update((username+password+'something').encode('utf-8'))
md5_password = md5.hexdigest() #创建记录
user = {}
user['password'] = md5_password #保存记录
db[username] = user #交互显示
print ('Registered successfully!')
print ('username : ',username)
print ('password : ',password) #显示数据库的信息
def showDataBase (db):
print ('------This is database show------')
for x in db.keys():
d = db[x]
print ('username : ',x)
for key,value in d.items():
print (key,':',value)
print ('------over------')
#登录数据库
def SignIn(db,username,password):
md5 = hashlib.md5()
md5.update((username+password+'something').encode('utf-8'))
md5_password = md5.hexdigest()
#检测是否有用户账号
if username in db.keys():
if db[username]['password'] == md5_password:
print ('welcome',username)
else:
print ('password is error')
#不存在用户账号信息
else:
print ('no user call ',username) #获取用户输入
def enter_command():
cmd = input('Enter command (r,s,q,show) : ')
cmd = cmd.strip().lower()
return cmd def get_user_input():
username = input('pls input your username : ')
password = input ('pls input your password : ')
L = [username,password]
return L
def main():
database = shelve.open('userData.dat') try:
while True:
cmd = enter_command()
if cmd == 'r':
user_input = get_user_input()
Register(database,user_input[0],user_input[1])
elif cmd == 's':
user_input = get_user_input()
SignIn(database,user_input[0],user_input[1])
elif cmd == 'show':
showDataBase(database)
elif cmd == 'q':
print ('quit by user')
break finally:
database.close() if (__name__) == '__main__':
main()
Python简要标准库(5)的更多相关文章
- Python简要标准库(2)
集合 堆 和 双端队列 1.集合 创建集合 s = set(range(10)) 和字典一样,集合元素的顺序是随意的,因此不能以元素的顺序作为依据编程 集合支持的运算 a = set([1,2,3]) ...
- Python简要标准库(1)
sys sys这个模块让你能够访问与Python解释器联系紧密的变量和函数 其中的一些在下表 F argv 命令行参数,包括脚本名称 exit([arg]) 退出当前的程序,可选参数为给定的返回值或者 ...
- Python简要标准库(3)
shelve 若只需要一个简单的存储方案,那么shelve模块可以满足你大部分的需要,你所需要的只是为它提供文件名.shelve中唯一有趣的函数是open,在调用的时候他会返回一个Shelf对象 注意 ...
- 【python】标准库的大致认识
正如那句 Python 社区中很有名的话所说的:“battery included”,Python 的一大好处在于它有一套很有用的标准库(standard library).标准库是随着 Python ...
- python 使用标准库连接linux实现scp和执行命令
import stat import pexpect 只显示关键代码: sqldb = localpath+database //获取database名字 if os.path.exists(sqld ...
- Python的标准库介绍与常用的第三方库
Python的标准库介绍与常用的第三方库 Python的标准库: datetime:为日期和时间的处理提供了简单和复杂的方法. zlib:以下模块直接支持通用的数据打包和压缩格式:zlib,gzip, ...
- Python 3标准库 第十四章 应用构建模块
Python 3标准库 The Python3 Standard Library by Example -----------------------------------------第十四章 ...
- python linecache标准库基础学习
#python标准库基础之:linecacge:高效读取文本文件#说明与作用"""可以从文件或者导入python模块获取文件,维护一个结果缓存,从而可以更高效地从相同文件 ...
- python StringIO标准库基础学习
#标准库:StringIO提供类文件API文本缓冲区#作用:可以处理内存中的文本,有2种不同的实现:cStringIP版本用c编写提高速度,StringIO用python来提供可移植性,与其他字符串连 ...
随机推荐
- linnx 修改ip地址
vi /etc/sysconfig/network-scripts/ifcfg-eth0 [编辑网卡的配置文件] 输入上述命令后回车,打开配置文件,使用方向键移动光标到最后一行,按字母键“i”,进入编 ...
- Git错误
$ rm -rf .git $ git config --global core.autocrlf false $git init $git add . ---------------------- ...
- 19.springboot邮件服务服务器部署访问不到邮箱服务器解决方案
1.前言 在Springboot项目的生产环境中,win系统环境下,邮箱服务是可以正常使用的. 当项目部署到阿里云服务器上之后,因为服务器端口采用安全组的方式,25端口访问不到. 在网上查找了一部分资 ...
- Android 初步-Android文件目录介绍
src:存放的是应用程序使用到的java文件. gen:系统自动生成的目录,不需要程序员进行修改,包含了R.java文件.该文件包含了 程序使用到的资源文件对应的唯一资源ID,注意:如果R文件生成错误 ...
- Sass 基础(四)
当你想设置属性值的时候你可以使用字符串插入进来,另一个使用的用法是构建一个选择器. @mixin generate-sizes($class,$small,$medium,$big){ .#{$cla ...
- #leetcode刷题之路3-无重复字符的最长子串
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1:输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc" ...
- 独木舟(51NOD 1432 )
n个人,已知每个人体重.独木舟承重固定,每只独木舟最多坐两个人,可以坐一个人或者两个人.显然要求总重量不超过独木舟承重,假设每个人体重也不超过独木舟承重,问最少需要几只独木舟? Input 第一行包含 ...
- springMVC中接收请求参数&&数据转发
### 1. 接收请求参数 #### 1.1. [不推荐] 通过HttpServletRequest获取请求参数 假设存在: <form action="handle_login.do ...
- MyBatis模糊查询的三种拼接方式
1. sql中字符串拼接 SELECT * FROM tableName WHERE name LIKE CONCAT(CONCAT('%', #{text}), '%'); 2. 使用 ${...} ...
- NPOI追加内容到xlsx报错,用Epplus往excle xlsx追加数据
问题的现象就是,只要不修改xlsx,一直写入或者再次写入xlsx,追加内容都是不会有问题的.但是只要你修改了xlsx,用excle2010或者2007修改了xlsx的内容里面的列宽,或者行高,或者进行 ...