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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM