Python简单密码加密程序,加盐(salt)md5

为学校系统导名单看了下python的MD5

果然导个包调一下函数就解决问题了……

留个档。

学校里经常干存数据库里存明文密码这种事,以后还是存salt值和加密后的MD5吧

另外忘记密码了怎么办?好办,取一个新的密码,跑一下这个程序,把salt和MD5替换掉数据库里的就完事了


# -------------------------------------------
# Python简单密码加密程序
# 随机生成4位salt,与原始密码组合,通过md5加密
# Author : Lrg
# -------------------------------------------
# encoding = utf-8
from random import Random
from hashlib import md5

# 获取由4位随机大小写字母、数字组成的salt值
def create_salt(length = 4):
	salt = ''
	chars = 'AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz0123456789'
	len_chars = len(chars) - 1
	random = Random()
	for i in xrange(length):
		# 每次从chars中随机取一位
		salt += chars[random.randint(0, len_chars)]
	return salt

# 获取原始密码+salt的md5值
def create_md5(pwd,salt):
	md5_obj = md5()
	md5_obj.update(pwd + salt)
	return md5_obj.hexdigest()

# 原始密码
pwd = '20141124'
# 随机生成4位salt
salt = create_salt()
# 加密后的密码
md5 = create_md5(pwd, salt)

print '[pwd]\n',pwd
print '[salt]\n', salt
print '[md5]\n', md5


效果如下(由于salt每次随机取,MD5当然也不一样):

[pwd]
20141124
[salt]
Ecm6
[md5]
dbe8860d0e7092e45a60f186e0bd4111



你可能感兴趣的:(Python)