Java实现BASE64编解码器

Java实现BASE64编解码器

笔者:chszs,转载注明。博客首页:http://blog.csdn.net/chszs

BASE64和其它类似的编码算法通经常使用于转换二进制数据为文本数据,其目的是为了简化存储或传输。更详细地说,BASE64算法主要用于转换二进制数据为ASCII字符串格式。

Java语言提供了一个很好的BASE64算法的实现,即Apache Commons Codec工具包。本文将简要地讲述如何使用BASE64以及它是如何工作的。


以下我们用BASE64对字符串进行编码:

import java.io.UnsupportedEncodingException;
import org.apache.commons.codec.binary.Base64;

public class Base64Test {
	public static void main(String[] args){
		String str = "Hello World";
		try{
			byte[] encodeBase64 = Base64.encodeBase64(str.getBytes("UTF-8"));
			System.out.println("RESULT: " + new String(encodeBase64));
		} catch(UnsupportedEncodingException e){
			e.printStackTrace();
		}
	}
}

输出结果为:

RESULT: SGVsbG8gV29ybGQ=

上面输出的字符串是“Hello world”字符串的8位二进制值被连接在一起,然后以6位分组。

随后每一个组都被转换成一个单独的数字并映射到Base64的索引。

binary	dec Base64
010010  18  S
000110  6   G
010101  21  V
101100  44  s
011011  27  b
000110  6   G
111100  60  8
100000  32  g
010101  29  d
110110  54  2
111101  61  9
110010  50  y
011011  27  b
000110  6   G
010000  16  Q

注意:字符串最后添加“=”。它的目的是表示字符串编码结束。





posted @ 2015-06-20 21:41  hrhguanli  阅读(378)  评论(0编辑  收藏  举报