java BASE64Encoder詳細(xì)介紹及簡單實例
java BASE64Encoder詳解
Base64是網(wǎng)絡(luò)上最常見的用于傳輸8Bit字節(jié)代碼的編碼方式之一,在發(fā)送電子郵件時,服務(wù)器認(rèn)證的用戶名和密碼需要用Base64編碼,附件也需要用Base64編碼。
Base64要求把每三個8Bit的字節(jié)轉(zhuǎn)換為四個6Bit的字節(jié)(3*8 = 4*6 = 24),然后把6Bit再添兩位高位0,組成四個8Bit的字節(jié),也就是說,轉(zhuǎn)換后的字符串理論上將要比原來的長1/3。
原文的字節(jié)最后不夠3個的地方用0來補(bǔ)足,轉(zhuǎn)換時Base64編碼用=號來代替。這就是為什么有些Base64編碼會以一個或兩個等號結(jié)束的原因,但等號最多只有兩個。
Java代碼實現(xiàn):
BASE64Encoder和BASE64Decoder兩個方法都是sun公司的內(nèi)部方法,并沒有在Java api中公開過,所以使用這些方法是不安全的,將來隨時可能會從中去除,所以相應(yīng)的應(yīng)該使用替代的對象及方法
Eclipse中不到BASE64Encoder的解決方法:按照如下方法設(shè)置Eclipse導(dǎo)入%JAVA_HOME%\jre\lib目錄下的rt.jar包即可,Project->Properties,選擇Java Build Path設(shè)置項,再選擇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="我愛你";
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>

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
Java實現(xiàn)百度AOI數(shù)據(jù)的解析與轉(zhuǎn)換
Java作為一種成熟且廣泛應(yīng)用的編程語言,具有跨平臺、面向?qū)ο?、安全性高等特點(diǎn),非常適合用于開發(fā)各種類型的應(yīng)用程序,本文為大家整理了基于Java的AOI數(shù)據(jù)解析與轉(zhuǎn)換的實現(xiàn)方法,需要的可以參考下2025-02-02
Spring容器刷新obtainFreshBeanFactory示例詳解
這篇文章主要為大家介紹了Spring容器刷新obtainFreshBeanFactory示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03
struts2數(shù)據(jù)處理_動力節(jié)點(diǎn)Java學(xué)院整理
Struts2框架框架使用OGNL語言和值棧技術(shù)實現(xiàn)數(shù)據(jù)的流轉(zhuǎn)處理。下面通過本文給大家分享struts2數(shù)據(jù)處理的相關(guān)知識,感興趣的朋友參考下吧2017-09-09

