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

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

作者: 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
          
    

    相关文章

      网友评论

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

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