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

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

最新文章

  1. 创建外网 ext_net - 每天5分钟玩转 OpenStack(104)
  2. [JS]笔记11之正则表达式
  3. rem 与 px 手机页面自适应
  4. AngularJS开发经验(转)
  5. Lenovo Setup(安装程序)
  6. Python开发【第一篇】Python模块中特殊变量
  7. css Hack 以及css的一些兼容问题小结
  8. [Gauss]POJ3185 The Water Bowls
  9. [Buffalo] 一些SQL函数
  10. 浅谈JavaScript词法分析步骤
  11. JSP 结构
  12. Discount Diesel Time 9150-1 Quartz Wrist watch [WAT022]- US$4.49
  13. Java 集合 散列表hash table
  14. 数据可视化之MarkPoint
  15. 金融量化分析【day110】:金融基础知识
  16. 库增删该查,表增删该查,记录增删该查,表与表关系(多对多,多对一,一对一),mysql用户管理
  17. day21 python之模块和包
  18. 埃航和737MAX坠毁:软件优先级问题
  19. Qt编写输入法V2018超级终结版
  20. 使用命令行模式启动VMWare虚拟机

热门文章

  1. 使用gdb调试游戏服务器
  2. CodeForces Round #191 (327C) - Magic Five 等比数列求和的快速幂取模
  3. 《c陷阱与缺陷》笔记--注意边界值
  4. Delphi的组件读写机制
  5. POJ 1562 Oil Deposits
  6. javascript --- 事件托付
  7. Delphi的没落有三个原因(比较贴切)
  8. 使用HashMap须要注意的事儿:不要暴露Map.entry给外部不可信代码Map.entrySet()
  9. centos 更改hostname
  10. hdu1081(最大子矩阵)