• python-网络安全编程第七天(base64模块)


    前言

    睡不着,那就起来学习其实base64模块很早之前用过今天做爬虫的时候有个URL需要用它来编码一下 所以百度又学了一下遇到最大的问题就是python3和python2区别问题 python3的这个不支持直接上字符串纠结了好久。

    base64编码

    Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,大家可以查看RFC2045~RFC2049,上面有MIME的详细规范。Base64编码可用于在HTTP环境下传递较长的标识信息。例如,在Java Persistence系统Hibernate中,就采用了Base64来将一个较长的唯一标识符(一般为128-bit的UUID)编码为一个字符串,用作HTTP表单和HTTP GET URL中的参数。在其他应用程序中,也常常需要把二进制数据编码为适合放在URL(包括隐藏表单域)中的形式。此时,采用Base64编码具有不可读性,即所编码的数据不会被人用肉眼所直接看到。

    BASE64其实不是安全领域下的加密解密算法。虽然有时候经常看到所谓的base64加密解密。其实base64只能算是一个编码算法,对数据内容进行编码来适合传输。虽然base64编码过后原文也变成不能看到的字符格式,但是这种方式很初级,很简单。

    编码后的数据是一个字符串,其中包含的字符为:A-Z、a-z、0-9、+、/。共64个字符:26 + 26 + 10 + 1 + 1 = 64。【注:其实是65个字符,“=”是填充字符】。

    BASE64应用
    需要明文保存二进制数据时,可以将不可打印的二进制数据经过Base64编码转成可打印的字符串。

    Mozilla Thunderbird和Evolution用Base64来保密电子邮件密码
    Base64也会经常用作一个简单的“加密”来保护某些数据,而真正的加密通常都比较繁琐。
    垃圾讯息传播者用Base64来避过反垃圾邮件工具,因为那些工具通常都不会翻译Base64的讯息。
    在LDIF档案,Base64用作编码字串。

    python-base64模块

    简单的案例

    # 导入 base64模块
    import base64
     
    # 给定需要转换的字符串
    str1 = "笑花大王是一个非常厉害的CTF手"
    #编码
    result=base64.b64encode(str1.encode())
    print(type(result))
    print(result)
    
    #解码
    result=base64.b64decode(result)
    print(type(result))
    print(result)

    为什么要使用encode() decode()?

    因为python3中对文本和二进制做了比较清晰的区分。python3默认编码为unicode,由str类型进行表示。二进制数据使用byte类型表示,所以不会将str和byte混在一起。在实际应用中我们经常需要将两者进行互转

    1:字符串通过编码转换为字节码,字节码通过解码转换为字符串

    str--->(encode)--->bytes,bytes--->(decode)--->str

    注意在python2之前base64模块函数的参数可以直接使用字符串,python3以后只能适用二进制字符串。

    参考学习

    https://blog.csdn.net/zengxiantao1994/article/details/60465165

    https://www.cnblogs.com/chownjy/p/6625299.html

  • 相关阅读:
    Spring 定时任务 @Scheduled cron表达式
    github 获取生成 token 的方法
    jQuery 获取当前日期及前一周或者后一周的日期
    jQuery 复选框 checkbox 取值和赋值
    git clone前后端项目之后的配置操作(一定不要忘记)
    springboo的postman后端接口测试流程详解
    Navicat Premium 15 永久破解激活工具及安装教程(亲测可用)
    企业微信的单点登录适配
    git的可视化和命令行操作步骤
    CMD中键入javac显示 javac不是内部或者外部命令
  • 原文地址:https://www.cnblogs.com/xhds/p/12227822.html
Copyright © 2020-2023  润新知