Java实现Base64算法

原创 2015年07月10日 14:16:09
Base64是一种基于64个字符的编码算法,经过Base64编码的数据会比原始数据略长,为原来长度的4/3倍。Base64算法中,等号用来补位。
URLBase64算法主要是将"+"和"/"替换成了"-"和"_"符号,对于补符"=",一种建议是使用"."符号,另一种是建议使用"~"。

Base64算法并不能叫做加密算法,充当密钥的字符映射表公开,直接违反了柯克霍夫原则,且Base64算法的加密强度并不高。因此,不能将Base64算法看作现代加密算法。

jdk中有自带Base64算法的实现,示例代码如下:

import java.util.Base64;

import org.junit.Test;

/**
 * Base64编码与解码测试类
 * 
 */
public class Base64CoderTest {

	/**
	 * Base64编码与解码测试类
	 * 使用jdk 自带的 Base64 API
	 * 
	 */
	@Test
	public final void demo() throws Exception {
		String str = "Base64编码与解码测试";
		System.err.println("原文:\n\t" + str);
		byte[] input = str.getBytes();

		// Base64编码
		Base64.Encoder encoder = Base64.getEncoder();
		String data = encoder.encodeToString(input);
		System.err.println("编码后:\n\t" + data);
		
		// Base64解码
		Base64.Decoder decoder = Base64.getDecoder();
		byte[] output = decoder.decode(data);
		System.err.println("解码后:\n\t" + new String(output));
		
		// UrlBase64编码
		Base64.Encoder urlEncoder = Base64.getUrlEncoder();
		String urlData = urlEncoder.encodeToString(input);
		System.err.println("url编码后:\n\t" + urlData);
		
		// UrlBase64解码
		Base64.Decoder urlDecoder = Base64.getUrlDecoder();
		byte[] urlOutput = urlDecoder.decode(urlData);
		System.err.println("url解码后:\n\t" + new String(urlOutput));

	}

}


运行结果如下:





相关文章推荐

Java 8实现BASE64编解码

Java 8实现BASE64编解码作者:chszs,转载需注明。博客主页:http://blog.csdn.net/chszsJava一直缺少BASE64编码 API,以至于通常在项目开发中会选用第三...
  • chszs
  • chszs
  • 2013年11月29日 17:27
  • 33039

Java实现BASE64编解码

Java实现BASE64编解码作者:chszs,转载需注明。博客主页:http://blog.csdn.net/chszsBASE64和其他相似的编码算法通常用于转换二进制数据为文本数据,其目的是为了...
  • chszs
  • chszs
  • 2013年11月29日 17:20
  • 66447

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

package com.stone.util; import java.io.UnsupportedEncodingException; import sun.misc.*; public cl...

base64的java实现方法

package cn.eshore.mismp.sms.ws.send;public class Base64 { /** * 将原始数据编码为base64编码 */ static public ...

Base64编码原理解析与Java实现

目前还在找工作,工作日时投投简历面面试,这周末难免就闲来无事了,那就只好看看慕课逛逛CSDN了,正巧看到一个关于Base64的课程《Java实现Base64加密》,点进去看看,完了发觉完全不是我想的那...
  • zdqdj1
  • zdqdj1
  • 2016年06月26日 00:39
  • 2095

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Java实现Base64互相编解码转换图片与字符串

Base64基本算法原理字符串实例(对s13进行Base64编解码) 测试:s13 编码:czEz 解码:s13如何编码s13为czEz的过程分析:Base64要求把每三个8Bit的字节转换为四...

java Base64加密实现

Base64是网络上最常见的用于传输的8bit字节代码的编码方式,也常将把需要的二进制数据编码放在url中的形式上传,由于可读性差,所编码的数据不会被直接看到信息详情! Base64 是采用字符替换的...
  • axuanqq
  • axuanqq
  • 2016年05月15日 10:58
  • 1033

Base64之java自定义实现

BASE64是一种编码方式,可以把二进制数据编码为字符形式的数据,是一种可逆的编码方式。 base64的原理就不多说了,网上资料太多,日常所用的话jdk本身或者commons-codec都提供了实现,...

java Base64加密算法

1.Base64是什么: Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,大家可以查看RFC2045~RFC2049,上面有MIME的详细规范。Base64编码可用于在HTT...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java实现Base64算法
举报原因:
原因补充:

(最多只允许输入30个字)