91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JAVA實現Base64編碼的方式有哪些

發布時間:2022-07-04 10:15:22 來源:億速云 閱讀:146 作者:iii 欄目:開發技術

本篇內容主要講解“JAVA實現Base64編碼的方式有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“JAVA實現Base64編碼的方式有哪些”吧!

定義: 二進制文件可視化

Base64 是一種能將任意二進制文件用 64 種字元組合成字串的方法, 彼此之間是可以互相轉換的. 也常用來表示字串加密后的內容, 例如電子郵件 (很多文本混雜大量 加號、/、大小寫字母、數字和等號,一看就知道是 Base64)

Base64 編碼步驟:

  • 第一步,將每三個字節作為一組,一共是24個二進制位

  • 第二步,將這24個二進制位分為四組,每個組有6個二進制位 (因為 6 位 2 進制最大數為 63)

  • 第三步,在每組前面加兩個00,擴展成32個二進制位,即四個字節

  • 第四步,根據序號表(0-63),得到擴展后的每個字節的對應符號就是Base64的編碼值

sun 包下的 BASE64Encoder

早期在 Java 上做 Base64 的編碼與解碼, 會使用到 JDK 里的 sun.misc 套件下的 BASE64Encoder 和 BASE64Decoder 這兩個類, 缺點是編碼和解碼的效率不高

final BASE64Encoder encoder = new BASE64Encoder();
final BASE64Decoder decoder = new BASE64Decoder();
final String text = "字串文字";
final byte[] textByte = text.getBytes("UTF-8");
//編碼
final String encodedText = encoder.encode(textByte);
System.out.println(encodedText);
//解碼
System.out.println(new String(decoder.decodeBuffer(encodedText), "UTF-8"));

apache 包下的 Base64

比 sun 包更精簡,實際執行效率高不少, 缺點是需要引用 Apache Commons Codec, 但 tomcat 容器下開發, 一般都自動引入可直接使用.

final Base64 base64 = new Base64();
final String text = "字串文字";
final byte[] textByte = text.getBytes("UTF-8");
//編碼
final String encodedText = base64.encodeToString(textByte);
System.out.println(encodedText);
//解碼
System.out.println(new String(base64.decode(encodedText), "UTF-8"));

util 包下的 Base64 (jdk8)

java 8 的 java.util 包下 Base64 類, 可用來處理 Base64 的編碼與解碼

final Base64.Decoder decoder = Base64.getDecoder();
final Base64.Encoder encoder = Base64.getEncoder();
final String text = "字串文字";
final byte[] textByte = text.getBytes("UTF-8");
//編碼
final String encodedText = encoder.encodeToString(textByte);
System.out.println(encodedText);
//解碼
System.out.println(new String(decoder.decode(encodedText), "UTF-8"));

Java 8 提供的 Base64 效率最高. 實際測試編碼與解碼速度, Java 8 的 Base64 要比 sun包下的要快大約 11 倍,比 Apache 的快大約 3 倍.

到此,相信大家對“JAVA實現Base64編碼的方式有哪些”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

奉节县| 乡城县| 阿坝| 邮箱| 同德县| 平塘县| 武隆县| 富顺县| 巴里| 玛沁县| 肃北| 顺义区| 定陶县| 宁阳县| 元谋县| 长丰县| 克拉玛依市| 五寨县| 衡山县| 石河子市| 安岳县| 策勒县| 和林格尔县| 兴业县| 若尔盖县| 中宁县| 临夏市| 离岛区| 南江县| 绥宁县| 彩票| 丰都县| 临猗县| 武川县| 循化| 高台县| 云安县| 陈巴尔虎旗| 西乡县| 永兴县| 离岛区|