首页 分享 关于‘加盐’使得密码不被破解

关于‘加盐’使得密码不被破解

来源:萌宠菠菠乐园 时间:2025-04-15 01:04

关于‘加盐’使得密码不被破解

chaoren1128 于 2020-01-20 22:14:53 发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

-- coding: utf-8 --

import hashlib, random

def get_md5(s):#确定返回字符串的函数,简化代码
return hashlib.md5(s.encode(‘utf-8’)).hexdigest()

class User(object):#生成一个类,用来储存哈希后的密码
def init(self, username, password):
self.username = username
self.salt = ‘’.join([chr(random.randint(48, 122)) for i in range(20)])#加盐,其中’ '.join表示后面的字符串以空格链接,random.randit(48,122)表示生成一个在48到122之间的随机数,chr表示将十进制返回字符
self.password = get_md5(password + self.salt)
db = {
‘michael’: User(‘michael’, ‘123456’),
‘bob’: User(‘bob’, ‘abc999’),
‘alice’: User(‘alice’, ‘alice2008’)
}#密码库
def login(username, password):
m=db[username]#将用户名与密码库进行对应,并去除密码库中的密码
l=get_md5(password+m.salt)#按照加盐规则对密码进行哈希化
if l==m.password: 哈希化后的密码与原密码进行比对
return True
else:
return False

测试:

assert login(‘michael’, ‘123456’)
assert login(‘bob’, ‘abc999’)
assert login(‘alice’, ‘alice2008’)
assert not login(‘michael’, ‘1234567’)
assert not login(‘bob’, ‘123456’)
assert not login(‘alice’, ‘Alice2008’)
print(‘ok’)

相关知识

关于‘加盐’使得密码不被破解
一个古典密码破解的实例
中国科学家破解家犬行为转变基因密码
解锁鸟类性格、破解进化之谜…RFID 技术如何助力解读鸟类生命密码?
梦幻西游如何防止密码被盗——17173.com网络游戏:《梦幻西游》专区
观赏鱼出现哪些问题,可使用换水、升温、加盐的方法调理?
热带鱼换水用加盐吗
养鱼为什么要放盐(鱼缸加盐的作用与科学依据)
今日萌宠知识教你一招:自配狗粮无须加盐
九种兵器2诸神战场2.5.155破解『可通档+全限定英雄+满商城道具+必定极品宠物』

网址: 关于‘加盐’使得密码不被破解 https://www.mcbbbk.com/newsview1116577.html

所属分类:萌宠日常
上一篇: 小海药业宠物犬猫用补液盐OEM代
下一篇: 瑞鹏宠物医院(沙盐分院)

推荐分享