java base64是什么,讓我們一起了解一下?
Base64是一種編碼方法,要求把每三個8Bit的字節轉換為四個6Bit的字節,轉換之后的這四個字節中每6個有效bit為有效數據,空余的那兩個bit用0補上成為一個字節。
為什么要使用Base64?
Base 64主要用途不是加密,而是把一些二進制數轉成普通字符,方便在網絡上傳輸。 由于一些二進制字符在傳輸協議中屬于控制字符,不能直接傳送,所以需要轉換一下才可以。由于某些系統中只能使用ASCII字符,Base64就是用來將非ASCII字符的數據轉換成ASCII字符的一種方法,Base64特別適合在http,mime協議下快速傳輸數據。
比如網絡中圖片的傳輸Base64,并非安全領域下的加密解密算法。雖然經常遇到所謂的base64的加密解密。但base64只能算是一個編碼算法,對數據內容進行編碼來適合傳輸。雖然base64編碼過后原文也變成不能看到的字符格式,但是方式初級又簡單。
那在Java中想要實現Base64的加解密,有哪些方式?
主要有以下四種(推薦度由低到高):
1、JDK中的sun.misc套件。
2、第三方擴展包 bouncy castle。
3、第三方擴展包 commons codec。
4、JDK8及更高版本中的 java.util.Base64。
實戰操作,JDK實現代碼如下:
import?sun.misc.BASE64Decoder;?? import?sun.misc.BASE64Encoder;?? /**?*?BASE64加密解密?*/?? public?class?BASE64?{?? ????/**?*?BASE64解密?*?@param?key?*?@return?*?@throws?Exception?*/?? ????public?static?byte[]?decryptBASE64(String?key)?throws?Exception?{?? ????????return?(new?BASE64Decoder()).decodeBuffer(key);?? ????}?? ????/**?*?BASE64加密?*?@param?key?*?@return?*?@throws?Exception?*/?? ????public?static?String?encryptBASE64(byte[]?key)?throws?Exception?{?? ????????return?(new?BASE64Encoder()).encodeBuffer(key);?? ????}?? ????public?static?void?main(String[]?args)?throws?Exception?{?? ????????String?data?=?BASE64.encryptBASE64("http://aub.iteye.com/".getBytes());?? ????????System.out.println("加密前:"?+?data);?? ????????byte[]?byteArray?=?BASE64.decryptBASE64(data);?? ????????System.out.println("解密后:"?+?new?String(byteArray));?? ????}?? }
以上就是小編今天的分享了,希望可以幫助到大家。