当前位置:科普知识站>IT科技>

java|base64

IT科技 阅读(3.24W)

<link rel="stylesheet" href="https://js.how234.com/third-party/SyntaxHighlighter/shCoreDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><script type="text/javascript"> SyntaxHighlighter.all(); </script>

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

那在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));      }  }