答复: 一种简单的给MD5加盐算法

本文介绍了一个使用Python实现的密码加密方案。该方案通过MD5算法结合随机盐值生成加密后的密码,并提供验证功能。文章提供了完整的代码示例,包括生成加密密码和验证密码正确性的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文 http://www.iteye.com/topic/1127277
python实现
#!/usr/bin/env python
#coding:utf-8

import random
import hashlib

DIGEST_LEN = 16

def generate(password):
    salt = '%0*d%0*d' % (8, random.randint(0, 99999999), 8, random.randint(0, 99999999))
    password = hashlib.md5(str(password)+salt).hexdigest()
    cs = [] # size 48
    for i in range(DIGEST_LEN):
        cs.append(password[i*2])
        cs.append(salt[i])
        cs.append(password[i*2+1])

    return "".join(cs)

def verify(password, md5):
    salt = []
    md5_password = []
    for i in range(DIGEST_LEN):
        salt.append(md5[i * 3 + 1])
        md5_password.append(md5[i * 3])
        md5_password.append(md5[i * 3 + 2])

    return hashlib.md5(str(password) + "".join(salt)).hexdigest() == "".join(md5_password)

if __name__ == '__main__':
    password = generate("123456")
    print verify("123456", password) # print "True"
(文:程序员之家)

转载注明地址:http://www.verydemo.com

 

原作者:http://www.verydemo.com/demo_c122_i22264.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值