美文网首页
「怎样安全存储用户密码」,一个简易实现

「怎样安全存储用户密码」,一个简易实现

作者: hezhiming | 来源:发表于2016-12-02 11:49 被阅读13次

如何安全存储用户密码,在网上已经有很多论述了。对于详细过程,不再赘述了,不如在此直接抛出经验。

  1. 明文存储的,直接枪毙
  2. md5存储的,蹂躏后再枪毙(五千万 md5 加密的密码约等于四千万明文密码)
  3. 使用强哈希算法,md5,sha1这些都已经淘汰了
  4. 每个密码必须加盐
  5. 必须是随机盐,完全不可预测的那种

值得注意的是,千万不要自己发明轮子,另外在 Python 中,应当使用 bcrypt 这个第三方库。

下面的 Python 代码,展示了大概的思路

def encrypt(password, salt=None):
    """加密

    :param password: bytes类型,务必转换
    """

    if salt is None:
        salt = os.urandom(10)

    h = hmac.new(salt, password, hashlib.sha256)

    return salt + h.digest()

def verify(password, hashed):
    """验证

    :param password: bytes类型,务必转换
    """
    
    return encrypt(password, salt=hashed[:10]) == hashed
      

相关文章

  • 「怎样安全存储用户密码」,一个简易实现

    如何安全存储用户密码,在网上已经有很多论述了。对于详细过程,不再赘述了,不如在此直接抛出经验。 明文存储的,直接枪...

  • 登录安全

    App登录常见的安全点:1.密码的安全2.token值安全使用 密码存储 用户密码必须不能明文存储。如果数据库泄露...

  • 密码如何保存——加盐技术

    核心目标:保证用户账号和密码的存储安全,避免被“脱裤”。 首先,用户账号和密码不能明文存储,例如“鱼鱼,12345...

  • hash, salt and pepper

    通常用户登录验证的方式是用户名和密码,用户和网站都拥有登陆名和密码,这个时候,对于用户密码的存储就变成了一个安全问...

  • ios Keychain存储

    iOS设备中的Keychain是一个安全的存储容器,可以用来为不同应用保存敏感信息比如用户名,密码,网络密码,认证...

  • 黑猴子的家:mysql 存储过程练习

    1、创建存储过程或函数实现传入用户名和密码,插入到admin表中 2、创建存储过程或函数实现传入女神编号,返回女神...

  • 用户密码存储

    1 明码 2 转化为加密密码 如md5 但是通过密码表核对也能破解 3 加盐 在密码加上固定字符串再加密 4 禁止...

  • 如何安全的存储用户的密码

    原文地址:https://crackstation.net/hashing-security.htm中文翻译:ht...

  • PHP 开发者如何做好密码保护 & Laravel 底层密码存储

    随着在线攻击的增多,密码安全越来越重要。作为开发者我们要担负起安全管理、计算哈希和存储用户密码的责任,不管应用是简...

  • 关于系统密码存储

    安全的密码存储保证,用户的明文密码永远不会暴露给除用户本人外的其他人,尤其是被“脱裤”时不会暴露给攻击者。 以下是...

网友评论

      本文标题:「怎样安全存储用户密码」,一个简易实现

      本文链接:https://www.haomeiwen.com/subject/zaofmttx.html