java BASE64Encoder詳細(xì)介紹及簡(jiǎn)單實(shí)例
java BASE64Encoder詳解
Base64是網(wǎng)絡(luò)上最常見(jiàn)的用于傳輸8Bit字節(jié)代碼的編碼方式之一,在發(fā)送電子郵件時(shí),服務(wù)器認(rèn)證的用戶名和密碼需要用Base64編碼,附件也需要用Base64編碼。
Base64要求把每三個(gè)8Bit的字節(jié)轉(zhuǎn)換為四個(gè)6Bit的字節(jié)(3*8 = 4*6 = 24),然后把6Bit再添兩位高位0,組成四個(gè)8Bit的字節(jié),也就是說(shuō),轉(zhuǎn)換后的字符串理論上將要比原來(lái)的長(zhǎng)1/3。
原文的字節(jié)最后不夠3個(gè)的地方用0來(lái)補(bǔ)足,轉(zhuǎn)換時(shí)Base64編碼用=號(hào)來(lái)代替。這就是為什么有些Base64編碼會(huì)以一個(gè)或兩個(gè)等號(hào)結(jié)束的原因,但等號(hào)最多只有兩個(gè)。
Java代碼實(shí)現(xiàn):
BASE64Encoder和BASE64Decoder兩個(gè)方法都是sun公司的內(nèi)部方法,并沒(méi)有在Java api中公開(kāi)過(guò),所以使用這些方法是不安全的,將來(lái)隨時(shí)可能會(huì)從中去除,所以相應(yīng)的應(yīng)該使用替代的對(duì)象及方法
Eclipse中不到BASE64Encoder的解決方法:按照如下方法設(shè)置Eclipse導(dǎo)入%JAVA_HOME%\jre\lib目錄下的rt.jar包即可,Project->Properties,選擇Java Build Path設(shè)置項(xiàng),再選擇Libraries標(biāo)簽,Add External Jars添加%JAVA_HOME%\jre\lib\rt.jar就可以使用啦!
Base64.java
<span style="font-family:Times New Roman;font-size:14px;">package cn.hncu.encoder; import java.io.IOException; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; public class Base64 { public static void main(String[] args) { try { String name="我愛(ài)你"; String pwd="你卻不知道。"; BASE64Encoder en=new BASE64Encoder(); name=en.encode(name.getBytes("utf-8"));//5oiR54ix5L2g pwd=en.encode(pwd.getBytes("utf-8"));//5L2g5Y205LiN55+l6YGT44CC System.out.println(name+","+pwd); BASE64Decoder den=new BASE64Decoder(); name=new String(den.decodeBuffer(name),"utf-8"); pwd=new String(den.decodeBuffer(pwd),"utf-8"); System.out.println(name+","+pwd); } catch (IOException e) { e.printStackTrace(); } } } </span>
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
- java與c#的語(yǔ)法區(qū)別詳細(xì)介紹
- C#調(diào)用Java代碼的方法介紹
- C#命名空間與java包的區(qū)別分析
- Java實(shí)現(xiàn)BASE64編碼和解碼的方法
- 基于Java實(shí)現(xiàn)的Base64加密、解密原理代碼
- 實(shí)例詳解Java實(shí)現(xiàn)圖片與base64字符串之間的轉(zhuǎn)換
- base64_encode和base64_decode的JAVA實(shí)現(xiàn)
- java 后臺(tái)將base64字符串保存為圖片的方法
- C# Base64編碼函數(shù)
- c#和java base64不一致的解決方法
相關(guān)文章
SpringBoot日期格式轉(zhuǎn)換之配置全局日期格式轉(zhuǎn)換器的實(shí)例詳解
這篇文章主要介紹了SpringBoot日期格式轉(zhuǎn)換之配置全局日期格式轉(zhuǎn)換器的實(shí)例詳解,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12字節(jié)碼調(diào)教入口JVM?寄生插件javaagent
這篇文章主要介紹了字節(jié)碼調(diào)教入口JVM?寄生插件javaagent方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08Java實(shí)現(xiàn)新建有返回值的線程的示例詳解
本文主要介紹了一個(gè)Java多線程的例題,題目是:使用ThreadLocal管理一號(hào)和二號(hào)線程,分別存入100元,在三號(hào)線程中使用利用一號(hào)和二號(hào)的計(jì)算結(jié)果來(lái)算出賬戶的實(shí)際金額。感興趣的可以了解一下2022-09-09