迅速看懂Base64编码

一、Base64是什么

Base64是一种编码方式,用于传输8位(8 bit)字节码,实质基于64个可打印字符来表示二进制数据的一种方法。

这64个可打印字符就是:   A-Za-z0-9+/
//26+26+10+2 = 64个

Base64编码是数据从二进制到字符的过程,在金融类系统中,系统的报文传输一般都会用Base64进行转码,然后再进行其他操作。Base64编码后数据具有不可读性,需要对应的Base64解码后才能阅读。

Base64编码使用8bit表示原来字符的6bit,所以编码后,每3个ASCII码会被转换成4个字符。例如:

“BAS”经Base64编码后变为“QkFT”,Base64字符与索引对应关系见下图:

当ASCII码不是3位或者3的倍数呢,我们再看一种情况:

“B”经过Base64编码后,变为了“Qg==”,这时我们注意到,当位数不够时,要在bit分组时末尾补0,全是0或者没有数的话,便用“=”补齐字符差位。

 

二、在Java中怎么实现Base64

Java中已经有Base64的封装类了,只需调用即可,所以使用还是很方便的啦。

import java.io.UnsupportedEncodingException;
import java.util.Base64;

class Base64Encoding {

	public static String base64Encoding(String str) throws UnsupportedEncodingException{
		return Base64.getEncoder().encodeToString(str.getBytes("UTF-8"));
	}
	
	public static void main(String[] args) throws UnsupportedEncodingException {
		
		String str1 = "BAS";
		String str2 = "B";
		System.out.println(str1+"\n 经Base64编码后成为:\n"+base64Encoding(str1)+"\n");
		System.out.println(str2+"\n 经Base64编码后成为:\n"+base64Encoding(str2));
	}

}

//结果:----------------------------------------------------------------------------------

//BAS
//经Base64编码后成为:
//QkFT

//B
//经Base64编码后成为:
//Qg==

以上。

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页