java base64是什么,让我们一起了解一下?
Base64是一种编码方法,要求把每三个8Bit的字节转换为四个6Bit的字节,转换之后的这四个字节中每6个有效bit为有效数据,空余的那两个bit用0补上成为一个字节。
为什么要使用Base64?
Base 64主要用途不是加密,而是把一些二进制数转成普通字符,方便在网络上传输。 由于一些二进制字符在传输协议中属于控制字符,不能直接传送,所以需要转换一下才可以。由于某些系统中只能使用ASCII字符,Base64就是用来将非ASCII字符的数据转换成ASCII字符的一种方法,Base64特别适合在http,mime协议下快速传输数据。
比如网络中图片的传输Base64,并非安全领域下的加密解密算法。虽然经常遇到所谓的base64的加密解密。但base64只能算是一个编码算法,对数据内容进行编码来适合传输。虽然base64编码过后原文也变成不能看到的字符格式,但是方式初级又简单。
那在Java中想要实现Base64的加解密,有哪些方式?
主要有以下四种(推荐度由低到高):
1、JDK中的sun.misc套件。
2、第三方扩展包 bouncy castle。
3、第三方扩展包 commons codec。
4、JDK8及更高版本中的 java.util.Base64。
实战操作,JDK实现代码如下:
import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; /** * BASE64加密解密 */ public class BASE64 { /** * BASE64解密 * @param key * @return * @throws Exception */ public static byte[] decryptBASE64(String key) throws Exception { return (new BASE64Decoder()).decodeBuffer(key); } /** * BASE64加密 * @param key * @return * @throws Exception */ public static String encryptBASE64(byte[] key) throws Exception { return (new BASE64Encoder()).encodeBuffer(key); } public static void main(String[] args) throws Exception { String data = BASE64.encryptBASE64("http://aub.iteye.com/".getBytes()); System.out.println("加密前:" + data); byte[] byteArray = BASE64.decryptBASE64(data); System.out.println("解密后:" + new String(byteArray)); } }
以上就是小编今天的分享了,希望可以帮助到大家。