标签:python
#!/usr/bin/env python # -*- coding: utf-8 -*- #实现MD5加密 #加密之后再存储密码,这样相对安全 import hashlib import shelve ‘‘‘ #第一种实现 def sec_md(passwd): hash = hashlib.md5() #创建一个MD5对象 hash.update(passwd) #用update方法,使其通过md5方式加密 return hash.hexdigest() #第二种实现方式,跟上面最大的不同就是加密后长度的不同 def sec_ps(passwd): hash = hashlib.md5() #创建一个MD5对象 hash.update(passwd) #用update方法,使其通过md5方式加密 return hash.digest() 注: MD5是不能够反解,用户如果想判断密码是否匹配,把输入的密码再以 同样的方式进行加密后,再与存储在数据库加密的值进行匹配。所以,不能反 解,那么匹配的时候就得正解,通过匹配密文的方式进行匹配 ‘‘‘ #小栗子 def sec_md(passwd): hash = hashlib.md5() hash.update(passwd) return hash.hexdigest() def adduser(name,passwd): f = shelve.open(‘data.db‘) password = sec_md(passwd) f[name] = password f.close() #添加一个用户 #adduser(‘tantianran‘,‘1qaz#EDC‘) def login(name,passwd): password = sec_md(passwd) data = shelve.open(‘data.db‘) if password == data.get(name,None): return True else: return False if __name__ == "__main__": username = raw_input(‘用户名:‘) password = raw_input(‘登录口令:‘) while True: if login(username,password) == True: print ‘登录成功‘ break else: print ‘登录失败‘ break
本文出自 “FA&IT运维-Q群:223843163” 博客,请务必保留此出处http://freshair.blog.51cto.com/8272891/1870840
标签:python
原文地址:http://freshair.blog.51cto.com/8272891/1870840