最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JAVA實(shí)現(xiàn)Base64編碼的三種方式

 更新時(shí)間:2022年06月27日 11:30:41   作者:howeres  
本文主要介紹了JAVA實(shí)現(xiàn)Base64編碼的三種方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

定義: 二進(jìn)制文件可視化

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

Base64 編碼步驟:

  • 第一步,將每三個(gè)字節(jié)作為一組,一共是24個(gè)二進(jìn)制位
  • 第二步,將這24個(gè)二進(jìn)制位分為四組,每個(gè)組有6個(gè)二進(jìn)制位 (因?yàn)?6 位 2 進(jìn)制最大數(shù)為 63)
  • 第三步,在每組前面加兩個(gè)00,擴(kuò)展成32個(gè)二進(jìn)制位,即四個(gè)字節(jié)
  • 第四步,根據(jù)序號(hào)表(0-63),得到擴(kuò)展后的每個(gè)字節(jié)的對(duì)應(yīng)符號(hào)就是Base64的編碼值

sun 包下的 BASE64Encoder

早期在 Java 上做 Base64 的編碼與解碼, 會(huì)使用到 JDK 里的 sun.misc 套件下的 BASE64Encoder 和 BASE64Decoder 這兩個(gè)類(lèi), 缺點(diǎn)是編碼和解碼的效率不高

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 包更精簡(jiǎn),實(shí)際執(zhí)行效率高不少, 缺點(diǎn)是需要引用 Apache Commons Codec, 但 tomcat 容器下開(kāi)發(fā), 一般都自動(dòng)引入可直接使用.

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 類(lèi), 可用來(lái)處理 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 效率最高. 實(shí)際測(cè)試編碼與解碼速度, Java 8 的 Base64 要比 sun包下的要快大約 11 倍,比 Apache 的快大約 3 倍.

到此這篇關(guān)于JAVA實(shí)現(xiàn)Base64編碼的三種方式的文章就介紹到這了,更多相關(guān)JAVA Base64編碼內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • springboot-assembly自定義打包全過(guò)程

    springboot-assembly自定義打包全過(guò)程

    這篇文章主要介紹了springboot-assembly自定義打包全過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • maven-surefire-plugin總結(jié)示例詳解

    maven-surefire-plugin總結(jié)示例詳解

    這篇文章主要介紹了maven-surefire-plugin總結(jié),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-07-07
  • Java中的線(xiàn)程池ThreadPoolExecutor深入解析

    Java中的線(xiàn)程池ThreadPoolExecutor深入解析

    這篇文章主要介紹了Java中的線(xiàn)程池ThreadPoolExecutor深入解析,線(xiàn)程池,thread pool,是一種線(xiàn)程使用模式,線(xiàn)程池維護(hù)著多個(gè)線(xiàn)程,等待著監(jiān)督管理者分配可并發(fā)執(zhí)行的任務(wù),需要的朋友可以參考下
    2023-11-11
  • 基于Java Swing制作一個(gè)Pong小游戲

    基于Java Swing制作一個(gè)Pong小游戲

    《Pong》是美國(guó)雅達(dá)利公司(ATARI)開(kāi)發(fā)的視頻游戲,該作模擬了兩個(gè)打乒乓球的人,就是在兩條線(xiàn)中間有一個(gè)點(diǎn)在動(dòng),操縱器就是一個(gè)搖桿上有一個(gè)按鈕的那種。本文就來(lái)用Java Swing制作一個(gè)Pong小游戲吧
    2023-01-01
  • java中流的使用

    java中流的使用

    本文主要介紹了java中流的使用以及分類(lèi)。具有一定的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-01-01
  • SpringBoot2.0集成WebSocket實(shí)現(xiàn)后臺(tái)向前端推送信息

    SpringBoot2.0集成WebSocket實(shí)現(xiàn)后臺(tái)向前端推送信息

    這篇文章主要介紹了SpringBoot2.0集成WebSocket實(shí)現(xiàn)后臺(tái)向前端推送信息,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • java 生成文字圖片的示例代碼

    java 生成文字圖片的示例代碼

    本篇文章主要介紹了java 生成文字圖片的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-08-08
  • Spring集成Seata方式(案例演示)

    Spring集成Seata方式(案例演示)

    這篇文章主要介紹了Spring集成Seata方式,本案例使用Seata-All演示,結(jié)合實(shí)例代碼給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-08-08
  • Java 實(shí)現(xiàn)LZ78壓縮算法的示例代碼

    Java 實(shí)現(xiàn)LZ78壓縮算法的示例代碼

    這篇文章主要介紹了Java 實(shí)現(xiàn)LZ78壓縮算法的示例代碼,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-05-05
  • Springboot詳解整合SpringSecurity實(shí)現(xiàn)全過(guò)程

    Springboot詳解整合SpringSecurity實(shí)現(xiàn)全過(guò)程

    Spring Security基于Spring開(kāi)發(fā),項(xiàng)目中如果使用Springboot作為基礎(chǔ),配合Spring Security做權(quán)限更加方便,而Shiro需要和Spring進(jìn)行整合開(kāi)發(fā)。因此作為spring全家桶中的Spring Security在java領(lǐng)域很常用
    2022-07-07

最新評(píng)論

平定县| 忻城县| 乐至县| 福鼎市| 乐安县| 东方市| 东明县| 方山县| 类乌齐县| 荥经县| 黄冈市| 突泉县| 仁布县| 枣阳市| 太仆寺旗| 凯里市| 磴口县| 普格县| 兴安县| 衡水市| 宁国市| 新竹县| 如皋市| 团风县| 白玉县| 高台县| 交口县| 星座| 依安县| 沾化县| 全州县| 湖北省| 宜川县| 吴桥县| 阜康市| 张家界市| 澎湖县| 杭锦旗| 中西区| 河南省| 新民市|