栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Python最安全的方法来从数据库存储和检索密码

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python最安全的方法来从数据库存储和检索密码

将密码+盐存储为哈希和盐。看一下Django的工作方式:基本文档和源代码。它们在数据库中存储

<type of hash>$<salt>$<hash>
在单个char字段中。您也可以将这三个部分存储在单独的字段中。

设置密码的功能:

def set_password(self, raw_password):    import random    algo = 'sha1'    salt = get_hexdigest(algo, str(random.random()), str(random.random()))[:5]    hsh = get_hexdigest(algo, salt, raw_password)    self.password = '%s$%s$%s' % (algo, salt, hsh)

get_hexdigest只是一些哈希算法的瘦包装。您可以为此使用hashlib。就像是

hashlib.sha1('%s%s' % (salt,hash)).hexdigest()

并检查密码的功能:

def check_password(raw_password, enc_password):    """    Returns a boolean of whether the raw_password was correct. Handles    encryption formats behind the scenes.    """    algo, salt, hsh = enc_password.split('$')    return hsh == get_hexdigest(algo, salt, raw_password)


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/624411.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号