zoukankan      html  css  js  c++  java
  • base64编码学习总结

    为什么需要使用base64编码

    • 使用HTTP协议传输二进制数据可能会出现无法预知的错误,参考有关使用HTTP协议传输二进制文件
    • 很多场景下的数据传输要求数据只能由简单通用的字符组成,比如HTTP协议要求请求的首行和请求头都必须是ASCII编码
    • 很多比较老的协议还是只支持纯文本的,比如SMTP协议
    • 提升效率:用Data URL技术,允许使用Base64对图片或其他文件的二进制数据进行编码,将其作为文本字符串嵌入网页中,避免不必要的外部资源加载
    • 参考资料

    base64如何编码?

    • 对应一个base 64 编码表
      • 包含大小写字母52个,0-9的数字10个,还有+/两个符号
    • 每3个原始字符编码成4个字符
      • 编码后的每个字符最高2位一定是0
      • 范围是[0, 63]
      • 如果字符数不是3的倍数,后面用零补齐
      • 末尾的0x00000000=表示
        • 所以细心的读者可以常常发现:base64编码后的字符串最后会有=符号
    • 编码后增加换行符
      • base64在RFC2045有规定:Base64一行不能超过76个字符,超过则添加回车换行符(windows平台下则为

    base如何解码

    1. 去掉多余的=
    2. 只需要按照编码表,逆向转成二进制数据
    3. 每个字符的二进制去掉最高的两位,最后拼接在一起,就是编码前的二进制数据流

    常用的C++ base64 编码和解码的库

    总结

    • base64将二进制字符转换成64个可见的文本字符,在某些场景下方便传输
    • base64不是一种加密方法,操作的本质不是加密
  • 相关阅读:
    C语言程序设计II—第六周教学
    第一次结对编程情况反馈
    C语言程序设计II—第五周教学
    C语言程序设计II—第四周教学
    放缩
    切线垂直
    指数为对数时取对数
    整体运算
    数列求通项+离散数列单调性判断
    整体运算+求零点
  • 原文地址:https://www.cnblogs.com/HelloGreen/p/11711115.html
Copyright © 2011-2022 走看看