base64詳解及實現


概述

  base64 說起來大家應該都是很熟悉的,很多類型的數據都可以轉成base64的編碼規則,例如圖片,pdf,文本,郵件內容等。

什么是base64

  根據RFC2045的定義,base64被定義為:base64內容傳送編碼被設計用來把任意系列的8位字節描述為一種不易被人直接識別的形式 簡單來說,就是一種用64個字符來表示二進制數據的方法。

有啥作用

  由於某些系統只能使用ASCII字符,base64就是用來將非ASCII字符的數據轉換成ASCII字符的一種方法。
用記事本打開exe,jpg,pdf這些文件時,我們都會看到一大堆亂碼,因為二進制文件包含很多無法顯示和打印的字符,所以,如果要讓文本軟件能處理二進制數據,就需要一個二進制到字符串的轉換方法,而base64 就是最常見的一個方法。特別適合在http,mime協議下快熟傳輸數據

  base64其實不是安全領域下的加密解密算法,雖然有時候能看到所謂的base64加密解密,其實這頂多算是一個編碼算法,雖然編碼之后不能直接看到原文,但是這種方式很初級。

啥原理

  base64的編碼方法要求把每三個8bit的字節轉換成四個6bit的字節,其中,轉換之后的這四個字節中每6個bit為有效數據,空余的那兩個補零成為一個字節。如果要編碼的二進制數據不是3的倍數,最后剩下一個或者兩個字節怎么辦呢?base64會在末尾補零,再在編碼的末尾加上一個或者兩個‘=’。

簡單的python實現

  這邊說明下,我這里用的是python2.7

  

  運行之后結果如下:

 

 

# coding: utf-8

# 引入模塊
import base64


encodeStr = '廚房小碼農'
# 加密
s1 = base64.b64encode(encodeStr)
# 解密
s2 = base64.b64decode(s1)
print s1
print s2


免責聲明!

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



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