[病毒] Base64 的加密與解密

Wiki

encode and decode

Base64是一種基于64個可打印字符來表示二進制數據的表示方法。由于2的6次方等于64,所以每6個比特為一個單元,對應某個可打印字符。
三個字節有24個比特,對應于4個Base64單元,即3個字節需要用4個可打印字符來表示。它可用來作為電子郵件的傳輸編碼。

在Base64中的可打印字符包括字母A-Z、a-z、數字0-9,這樣共有62個字符,此外兩個可打印符號在不同的系統中而不同。
一些如uuencode的其他編碼方法,和之后binhex的版本使用不同的64字符集來代表6個二進制數字,但是它們不叫Base64。

Base64常用于在通常處理文本數據的場合,表示、傳輸、存儲一些二進制數據。包括MIME的email、在XML中存儲復雜數據。

例子

舉例來說,一段引用自托馬斯·霍布斯《利維坦》的文句:

Man is distinguished, not only by his reason, but by this singular passion from other animals, which is a lust of the mind, that by a perseverance of delight in the continued and indefatigable generation of knowledge, exceeds the short vehemence of any carnal pleasure.

經過base64編碼之后變成:

TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlzIHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2YgdGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGludWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdlLCBleGNlZWRzIHRoZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4=

在URL中的應用

Base64編碼可用于在HTTP環境下傳遞較長的標識信息。

例如,在Java持久化系統Hibernate中,就采用了Base64來將一個較長的唯一標識符(一般為128-bit的UUID)編碼為一個字符串,用作HTTP表單和HTTP GET URL中的參數。
在其他應用程序中,也常常需要把二進制數據編碼為適合放在URL(包括隱藏表單域)中的形式。
此時,采用Base64編碼不僅比較簡短,同時也具有不可讀性,即所編碼的數據不會被人用肉眼所直接看到。

然而,標準的Base64并不適合直接放在URL里傳輸,因為URL編碼器會把標準Base64中的“/”和“+”字符變為形如“%XX”的形式,而這些“%”號在存入數據庫時還需要再進行轉換,因為ANSI SQL中已將“%”號用作通配符。

為解決此問題,可采用一種用于URL的改進Base64編碼,它不在末尾填充'='號,并將標準Base64中的“+”和“/”分別改成了“-”和“_”,這樣就免去了在URL編解碼和數據庫存儲時所要作的轉換,避免了編碼信息長度在此過程中的增加,并統一了數據庫、表單等處對象標識符的格式。

另有一種用于正則表達式的改進Base64變種,它將“+”和“/”改成了“!”和“-”,因為“+”,“*”以及前面在IRCu中用到的“[”和“]”在正則表達式中都可能具有特殊含義。

此外還有一些變種,它們將“+/”改為“_-”或“._”(用作編程語言中的標識符名稱)或“.-”(用于XML中的Nmtoken)甚至“_:”(用于XML中的Name)。

以上內容來自 https://zh.wikipedia.org/wiki/Base64

在線加密解密工具

[推薦] http://www.bejson.com/enc/base64/
[備用] http://tool.chinaz.com/tools/base64.aspx

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,981評論 19 139
  • Base64是網絡上最常見的用于傳輸8Bit字節碼的編碼方式之一,Base64就是一種基于64個可打印字符來表示二...
    黃曉果閱讀 3,160評論 0 2
  • 國家電網公司企業標準(Q/GDW)- 面向對象的用電信息數據交換協議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 11,178評論 6 13
  • 版本記錄 前言 在這個信息爆炸的年代,特別是一些敏感的行業,比如金融業和銀行卡相關等等,這都對app的安全機制有更...
    刀客傳奇閱讀 2,425評論 0 1
  • 理想很豐滿,現實很骨感。 以前想“上班的人真好,有自己的財政自由,做著自己喜歡做的事情,得到大BOSS的賞識,下班...
    芷渃蒹葭閱讀 428評論 9 6