當前位置:科普知識站>IT科技>

java|base64

IT科技 閱讀(3.24W)

<link rel="stylesheet" href="https://js.how234.com/third-party/SyntaxHighlighter/shCoreDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><script type="text/javascript"> SyntaxHighlighter.all(); </script>

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

那在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));      }  }