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"))
  • 相关阅读:
    python——简单的爬虫
    Python——文件读取与写入
    python—列表集合的交集并集差集
    python—turtle佩奇
    python——append用法
    python——列表平均数
    python回文数的判断
    python输入两个数字比较大小
    python———input()函数
    HTML---3
  • 原文地址:https://www.cnblogs.com/staff/p/12920871.html
Copyright © 2011-2022 走看看