zoukankan      html  css  js  c++  java
  • Python学习笔记(25)MD5加密与base64加密

    一、MD5加密

      python中使用自带的加密模块,hashlib进行MD5加密

      知识背景:对于用户敏感信息,如登录密码,在明文传递参数时,可能会被别人窃取,需要通过MD5加密来加密数据

      MD5加密特性:无论是字符串、数字、汉字、文件等,加密完均是18位的数字和字符串组合,且加密后无法解密,网站的解密一般通过撞库来实现。

      

    import hashlib
    s = ['汉字','asdnecc',1234]#任何字符串,数字,汉字,文件等,加密完都是18位字符串
    for i in s:
        m = hashlib.md5(str(i).encode())#入参必须通过encode()方法转换为字节型
        result = m.hexdigest()#通过十六进制格式返回
        print(result)
    

      返回结果:

    8a97ee1fcddc24870fb66b4b58c41214
    1f85206057bcc8a7e9543a94ac60c96e
    81dc9bdb52d04dc20036dbd8313ed055
    

     

    二、加盐

      背景:由于用户可能设置比较简单的密码如123456,654321,等有比较强规则的数据时,由于MD5加密后是固定字符串,很容易被其他人猜出密码,所以需要通过加盐操作来对数据加密

      

    salt = '21385#$%&*'
    password = input('password:')
    password +=salt
    m = hashlib.md5(password.encode())
    result = m.hexdigest()
    print(result)
    

      返回结果:

    password:123
    21d01ea49572576a3e09dc71709b05d1
    

      
    三、base64位加密

      python中使用自带的base64模块进行base加密

      base64加密特性:

        1、加密后的数据,可以通过解密得到原数据 

        2、加密后的数据长度不是固定值,随着加密字符串的大小而变化

     

    import base64 #能加密 解密,末尾有等于号一般都是base64加密
    #加密
    s = 'https://www.baidu.com'
    b = base64.b64encode(s.encode())#接收bytes入参,返回bytes加密结果
    t = b.decode()#返回的bytes数据通过decode()转换为字符串
    print(t)
    #解密
    b = base64.b64decode(t)
    print(b.decode())
    

      返回结果:

    aHR0cHM6Ly93d3cuYmFpZHUuY29t
    https://www.baidu.com
    

      

  • 相关阅读:
    草稿~!
    Jmeter使用:JSON返回数据处理
    Jmeter使用:操作MySQL
    jmeter+ant+jenkins 搭建接口自动化测试环境
    【未完成】Jmeter接口自动化测试:参数化设置
    RDLC报表系列(六) 多图表-折线图和柱状图
    RDLC报表系列(五) 简单的图表-柱状图
    RDLC报表系列(四) 矩阵
    流程图里的形状符号的含义及意义(转 )
    Login failed for user 'NT AUTHORITYNETWORK SERVICE'的解决方法
  • 原文地址:https://www.cnblogs.com/bugoobird/p/12996592.html
Copyright © 2011-2022 走看看