原文地址:http://blog.csdn.net/xuefeng0707/article/details/19845111
BASE64是一種編碼方式,通常用于把二進制數據編碼為可寫的字符形式的數據。
這是一種可逆的編碼方式。
編碼后的數據是一個字符串,其中包含的字符為:A-Z、a-z、0-9、+、/
共64個字符:26 + 26 + 10 + 1 + 1 = 64。
【注:其實是65個字符,“=”是填充字符】。
64個字符需要6位來表示,表示成數值為0~63。
這樣,長度為3個字節的數據經過Base64編碼后就變為4個字節。
例:
字符串“Xue”經過Base64編碼后變為“WHVl”。
長度為3個字節的數據位數是8*3=24,可以精確地分成6*4。
如果數據的字節數不是3的倍數,則其位數就不是6的倍數,那么需要就不能精確地劃分成6位的塊。
此時,需在原數據后面添加1個或2個零值字節,使其字節數是3的倍數。
然后,在編碼后的字符串后面添加1個或2個等號“=”,表示所添加的零值字節數。
例:
字符串“Xu”經過Base64編碼后變為“WHU=”。
字符串“X”經過Base64編碼后變為“WA==”。
應用:
需要明文保存二進制數據時,可以將不可打印的二進制數據經過Base64編碼轉成可打印的字符串。
Mozilla Thunderbird和Evolution用Base64來保密電子郵件密碼Base64也會經常用作一個簡單的“加密”來保護某些數據,而真正的加密通常都比較繁瑣。垃圾訊息傳播者用Base64來避過反垃圾郵件工具,因為那些工具通常都不會翻譯Base64的訊息。在LDIF檔案,Base64用作編碼字串。測試程序:[java] view plain copy新聞熱點
疑難解答