java BASE64Encoder详细介绍及简单实例
程序员文章站
2024-03-07 18:22:03
java base64encoder详解
base64是网络上最常见的用于传输8bit字节代码的编码方式之一,在发送电子邮件时,服务器认证的用户名和密码需要用...
java base64encoder详解
base64是网络上最常见的用于传输8bit字节代码的编码方式之一,在发送电子邮件时,服务器认证的用户名和密码需要用base64编码,附件也需要用base64编码。
base64要求把每三个8bit的字节转换为四个6bit的字节(3*8 = 4*6 = 24),然后把6bit再添两位高位0,组成四个8bit的字节,也就是说,转换后的字符串理论上将要比原来的长1/3。
原文的字节最后不够3个的地方用0来补足,转换时base64编码用=号来代替。这就是为什么有些base64编码会以一个或两个等号结束的原因,但等号最多只有两个。
java代码实现:
base64encoder和base64decoder两个方法都是sun公司的内部方法,并没有在java api中公开过,所以使用这些方法是不安全的,将来随时可能会从中去除,所以相应的应该使用替代的对象及方法
eclipse中不到base64encoder的解决方法:按照如下方法设置eclipse导入%java_home%\jre\lib目录下的rt.jar包即可,project->properties,选择java build path设置项,再选择libraries标签,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>
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!