Python 2.7
IDE Pycharm 5.0.3
今天接触到了MD5和SHA1加密算法,简单构思了一下用户的加密存储系统和登录系统,好吧,原谅我简单的思维和幼稚的代码,不过 i promise,这代码独一无二,也希望大家多自己动手,不要老是按部就班的学习(我貌似没有资格说吧,哈哈,不服过来打我啊)
实现目的
对原有的用户进行登录操作,可增加新用户,并且进行选择算法加密,数据库(字典)会更新,之后可用于登录;
小改进:增加退出和无限循环,增加对大小写名字的适用性
后续构思:连接SQL,增加Gui界面,模仿简单登录片(挖坑以后补)
代码部分
import hashlib
def md5(str1):
md = hashlib.md5()
md.update(str1)
md_5=md.hexdigest()
return md_5,
def sha1(str1):
sh = hashlib.sha1()
sh.update(str1)
sha_1 = sh.hexdigest()
return sha_1
dict_client = {
'alice' : '123',
'bob' : '456',
'frank' : '789'
}
#以后和数据库连接后直接可用
while 1:
ty = raw_input('请选择需要的操作,存储用户及密码请输入1:实行登录请摁2:退出请摁3:')
if ty == '1':
print '您正在使用用户存储系统...'
name = raw_input('请输入名字:')
keywords = raw_input('请输入密码:')
cho = raw_input('请选择对密码加密算法:')
if cho.lower() == 'md5':
md5(keywords)
print 'MD5-密码加密已完成...'
if cho.lower() == 'sha1':
sha1(keywords)
print 'SHA1-密码加密已完成...'
dict_client[name] = md5(keywords)
#print dict_client#测试时候用的,可以看dict内容
if ty == '2':
print '您正在使用用户登录系统...'
name_req = raw_input('请输入名字:')
keywords_req = raw_input('请输入密码:')
if dict_client[name_req.lower()] == md5(keywords_req):
print 'welcome %s'%name_req
elif dict_client[name_req.lower()] == sha1(keywords_req):
print 'welcome %s'%name_req
elif dict_client[name_req.lower()] == keywords_req:
print 'welcome %s'%name_req
else:
print '用户名不存在或密码错误!'
if ty == '3':
print '正在退出程序...'
break
新手,代码冗余量比较大,见谅见谅,如有更好的方法,请以任何方式联系我,我还是很好学的呢
请选择需要的操作,存储用户及密码请输入1:实行登录请摁2:退出请摁3:2
您正在使用用户登录系统...
请输入名字:Alice
请输入密码:123
welcome Alice
请选择需要的操作,存储用户及密码请输入1:实行登录请摁2:退出请摁3:1
您正在使用用户存储系统...
请输入名字:哈士奇说喵
请输入密码:abc
请选择对密码加密算法:Md5
MD5-密码加密已完成...
请选择需要的操作,存储用户及密码请输入1:实行登录请摁2:退出请摁3:2
您正在使用用户登录系统...
请输入名字:哈士奇说喵
请输入密码:abc
welcome 哈士奇说喵
请选择需要的操作,存储用户及密码请输入1:实行登录请摁2:退出请摁3:2
您正在使用用户登录系统...
请输入名字:哈士奇说喵
请输入密码:2
用户名不存在或密码错误!
请选择需要的操作,存储用户及密码请输入1:实行登录请摁2:退出请摁3:3
正在退出程序...
Process finished with exit code 0
具体的实现的操作还是比较简单的,个人习惯是将一些高度能用的模块保存起来,比如说循环查询模块等等,以后可以直接拿来用。
更新
较为高阶的版本请看Python+MySQL用户加密存储验证系统(进阶)