zoukankan      html  css  js  c++  java
  • hash应用-加随机盐保存密码

    用户注册,将“用户名”,“密码”,“盐值”存入用户表

    输入:密码明文

    输出:密码密文+盐值

    import hashlib, random, string
    
    
    def get_salt(length=8):
        '''
        从a-zA-Z0-9生成指定数量的随机字符
        :param length:字符数量
        :return:
        '''
        salt = ''.join(random.sample(string.ascii_letters + string.digits, length))
        return salt
    
    
    def hash_salt(pwd):
        '''
        获取盐和密码密文
        :param pwd: 密码明文
        :return:
        '''
        salt = get_salt()  # 盐值
        pwd_salt = pwd + salt  # 加盐后的密码
        md5_pwd_salt = hashlib.md5(pwd_salt.encode()).hexdigest()
        return salt, md5_pwd_salt
    
    
    def auth(username, pwd):
        """
        认证用户名密码是否匹配
        :param username:
        :param pwd:
        :return:
        """
        # 根据username在用户表中查询出salt, pwd密文
        salt = "WTAkEeRJ"
        md5_pwd_salt = 'a4545264e99c2baee850a9fec92f5b45'
        # 根据pwd明文和salt算出密文
        pwd_salt = pwd + salt  # 加盐后的密码
        md5_str = hashlib.md5(pwd_salt.encode()).hexdigest()
        # 将算出的密文和用户表中存放的密文进行对比
        return md5_pwd_salt == md5_str
    
    
    if __name__ == '__main__':
        print(hash_salt("pwd1234567"))
        print(auth("username", "pwd1234567"))
  • 相关阅读:
    并发包学习(二)-容器学习记录
    初尝微信小程序开发与实践
    记一次全站升级https引发的一系列问题
    Hadoop集群搭建
    es5 的类和继承
    TypeScript 类和继承
    TypeScript 函数
    TypeScript 变量 和 数据类型
    js变量提升与函数提升
    vue 路由监听
  • 原文地址:https://www.cnblogs.com/staff/p/12920871.html
Copyright © 2011-2022 走看看