1. hashlib是一个加密模块:
    内置了很多算法
    - MD5(*******): 不可解密的算法(2018年以前)

    摘要算法:
    - 摘要是从某个内容中获取的加密字符串
    - 摘要一样,内容就一定一样: 保证唯一性

    - 密文密码就是一个摘要
    hash算法其实可以看成如下图所示的一座工厂,工厂接收你送来的原材料,经过加工返回的产品就是hash

  1. import hashlib
  2. md5_obj = hashlib.md5()
  3. print(type(md5_obj))
  4. str1 = \'1234\'
  5. # update中一定要传入bytes类型数据
  6. md5_obj.update(str1.encode(\'utf-8\'))
  7. # # 得到一个加密后的字符串
  8. res = md5_obj.hexdigest()
  9. # 202cb962ac59075b964b07152d234b70
  10. print(res)
  1.  
  1. # 以上操作撞库有可能会破解真实密码
  2.  
  3. # 防止撞库问题: 加盐
  4.  
  5. import hashlib
  6. def pwd_md5(pwd): #
  7. md5_obj = hashlib.md5()
  8. # print(type(md5_obj))
  9. str1 = pwd # \'1234\'
  10. # update中一定要传入bytes类型数据
  11. md5_obj.update(str1.encode(\'utf-8\'))
  12. # 创造盐
  13. sal = \'坦克怎么这么帅啊!\'
  14. # 加盐
  15. md5_obj.update(sal.encode(\'utf-8\'))
  16. # 得到一个加密后的字符串
  17. res = md5_obj.hexdigest()
  18. # eb1ca06cf5940e9fb6ef39100ec72c94
  19. return res
  20. user_str1 = f\'tank:1234\'
  21. user_str2 = f\'tank:{res}\'
  22. with open(\'user.txt\', \'w\', encoding=\'utf-8\') as f:
  23. f.write(user_str2)
  24. # 模拟用户登陆操作
  25.  
  26. # 获取文件中的用户名与密码
  27. with open(\'user.txt\', \'r\', encoding=\'utf-8\') as f:
  28. user_str = f.read()
  29. file_user, file_pwd = user_str.split(\':\')
  30. # 用户输入用户名与密码
  31. username = input(\'请输入用户名:\').strip()
  32. password = input(\'请输入密码:\').strip() # 1234
  33.  
  34. # 校验用户名与密码是否一致
  35. if username == file_user and file_pwd == pwd_md5(password): # pwd_md5(\'1234\')
  36. print(\'登陆成功\')
  37. else:
  38. print(\'登陆失败\')

 

  1.  

 

  1.  

 

  1.  

版权声明:本文为lvguchujiu原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/lvguchujiu/p/11881987.html