Java实现BASE64编解码

标签: base64 java commons-codec base64编码
73147人阅读 评论(3) 收藏 举报
分类:

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

注意:字符串最后加上了“=”,其意思表示字符串编码的结束。





查看评论

Java如何进行Base64的编码(Encode)与解码(Decode)?

Java进行Base64的编码(Encode)与解码(Decode)的几种方式与区别..
  • zhou_kapenter
  • zhou_kapenter
  • 2017-03-17 16:37:41
  • 45699

Java常用工具类封装——Base64 编码和解码

Base64 编码和解码工具类,供参考。 import java.io.*; /** * Base64 编码和解码。 * * @author jiangshuai * @date 2016年10月...
  • Dove_Knowledge
  • Dove_Knowledge
  • 2017-05-01 11:23:10
  • 6170

java:7种Base64编码和解码功能详解和性能比较

Java 8新特性探究(十一)Base64详解 BASE64 编码是一种常用的字符编码,在很多地方都会用到。但base64不是安全领域下的加密解密算法。能起到安全作用的效果很差,而且很容...
  • u013476542
  • u013476542
  • 2016-11-18 10:49:43
  • 16696

js、java的base64相互加密、解密

js中base64加密: BASE64.encoder(str); java后端base64解密: import org.apache.commons.codec.binary.Base64; ...
  • hgg923
  • hgg923
  • 2017-06-01 15:45:50
  • 2597

Base64编码原理解析与Java实现

20180202更新:简化前言,重新排版。使用MARKDOWN排版:新版链接 一、前言 碰巧在慕课看到一个关于Base64的课程《Java实现Base64加密》,发现介绍了3个AP...
  • zdqdj1
  • zdqdj1
  • 2016-06-26 00:39:40
  • 3294

java基础---->Base64算法的使用

Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,可用于在HTTP环境下传递较长的标识信息。详细的Base64信息,可以参见维基百科:https://en.wikipedia.org...
  • GarfieldEr007
  • GarfieldEr007
  • 2016-12-18 11:05:56
  • 3708

利用Java自带的Base64加密,解密

package com; import java.io.UnsupportedEncodingException; import sun.misc.BASE64Decoder; import sun...
  • u013238950
  • u013238950
  • 2016-04-28 11:39:25
  • 8215

RSA算法的Java实现及Base64的正确使用

遇到的问题:     今天参考他人代码实现了一下RSA算法。遇到一个问题,网上的RSA工具类中的核心方法大多是需要传入byte[]数组进行处理,而不能直接传入String进行处理,这里对byte[]的...
  • ldld1717
  • ldld1717
  • 2017-05-08 15:22:35
  • 1155

Java工程中引用Base64编码解码小记

1)Base64编码解码包下载:http://commons.apache.org/proper/commons-codec/       下载commons-codec-1.9.jar里面有base...
  • fjssharpsword
  • fjssharpsword
  • 2016-07-26 15:24:32
  • 4855

利用java自带的base64实现加密、解密

package com.stone.util; import java.io.UnsupportedEncodingException; import sun.misc.*; public cl...
  • huangyunzeng2008
  • huangyunzeng2008
  • 2011-06-23 16:01:00
  • 126431
    个人资料
    持之以恒
    等级:
    访问量: 613万+
    积分: 5万+
    排名: 63
    一名路过的黑客

    大家好,我是黑客,专门盗账号的。现在这个人的帐号被我盗了,但看这个人平时的博客空间,一直过着艰苦努力、持之以恒的技术研究生活,勤奋刻苦,积极分享,无私奉献,我被深深的感动了,这是一个纯粹的人,人品这样的高尚,希望大家看到我这条消息后,可以私聊他,多鼓励他,不缺钱的就多给他一些经济上的资助,让他再接再厉!就这样吧,我下线了,眼框湿湿的难受。

    文章存档