zoukankan      html  css  js  c++  java
  • base64编解码学习及python代码实现

      Base64是一种用64个字符来表示任意二进制数据的方法。

    Base64编码可以成为密码学的基石。可以将任意的二进制数据进行Base64编码。所有的数据都能被编码为并只用65个字符就能表示的文本文件。( 65字符:A~Z a~z 0~9 + / = )编码后的数据~=编码前数据的4/3,会大1/3左右。

    Base64编码的原理

    image.png
    1. 将所有字符转化为ASCII码。
    2. 将ASCII码转化为8位二进制 。
    3. 将二进制3个归成一组(不足3个在后边补0)共24位,再拆分成4组,每组6位。
    4. 统一在6位二进制前补两个0凑足8位。
    5. 将补0后的二进制转为十进制。
    6. 从Base64编码表获取十进制对应的Base64编码。

    Base64编码的说明

    • 转换的时候,将三个byte的数据,先后放入一个24bit的缓冲区中,先来的byte占高位。
    • 数据不足3byte的话,于缓冲区中剩下的bit用0补足。然后,每次取出6个bit,按照其值选择查表选择对应的字符作为编码后的输出。
    • 不断进行,直到全部输入数据转换完成。
    • 如果最后剩下两个输入数据,在编码结果后加1个“=”。
    • 如果最后剩下一个输入数据,编码结果后加2个“=”。
    • 如果没有剩下任何数据,就什么都不要加,这样才可以保证资料还原的正确性。

    PYHTON的源码实现

    •  1 # -*- coding: utf-8 -*-
       2 # coding=utf-8
       3 import base64
       4 
       5 print("example one")
       6 encode = base64.b64encode(b'I love you')
       7 
       8 print(encode)
       9 
      10 decode = base64.b64decode(encode)
      11 
      12 print(decode)
      13 
      14 print("example two")
      15 
      16 encode = base64.b64encode(b'I love you$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@MMMMMMMMMMMMMMMMMMM')
      17 
      18 print(encode)
      19 
      20 decode = base64.b64decode(encode)
      21 
      22 print(decode)
      View Code
    • 参考文档: https://www.jianshu.com/p/4ba20afacce2
  • 相关阅读:
    003_硬件基础电路_LM2596
    002_硬件基础电路_7805电路
    007_软件安装之_串口屏软件
    006_软件安装之_Proteus 8.6 SP2 Professional
    jquery最快速入门文档
    CSS的属性与选择器
    mysql的使用
    python协程的使用
    python线程与进程
    python爬虫学习第六章
  • 原文地址:https://www.cnblogs.com/dylancao/p/9382429.html
Copyright © 2011-2022 走看看