Java加密系列之(二)Base64加密

原创 2015年04月25日 14:40:06

Base64算法

算法实现

使用JDK实现

使用Commons Codec实现

使用Bouncy Castle实现


sun.misc.BASE64Encoder/BASE64Decoder类不属于JDK标准库范畴,但在JDK中包含了该类,可以直接使用,但这个没有java doc,属于jdk里不推荐使用的工具类。强烈建议不要用sun.misc,是不安全的。

bouncycastle的jar包下载地址:http://www.bouncycastle.org/latest_releases.html


package com.tvm.mrz.security.base64;

import java.io.IOException;

import org.apache.commons.codec.binary.Base64;

import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;

public class Base64Test {

	private static String src = "Mr.Z Security Base64";

	public static void jdkBase64() {
		BASE64Encoder encoder = new BASE64Encoder();
		String encode = encoder.encode( src.getBytes() );
		System.out.println( "encode:" + encode );

		BASE64Decoder decoder = new BASE64Decoder();
		try {
			byte[] decode = decoder.decodeBuffer( encode );
			System.out.println( "decode:" + new String( decode ) );
		} catch( IOException e ) {
			e.printStackTrace();
		}
	}

	public static void commonsCodecBase64() {
		// String encode = Base64.encodeBase64String( src.getBytes() );
		byte[] encode = Base64.encodeBase64( src.getBytes() );
		System.out.println( "encode:" + new String( encode ) );

		byte[] decode = Base64.decodeBase64( encode );
		System.out.println( "decode:" + new String( decode ) );
	}

	public static void bouncyCastleBase64() {
		byte[] encode = org.bouncycastle.util.encoders.Base64.encode( src.getBytes() );
		System.out.println( "encode:" + new String( encode ) );

		byte[] decode = org.bouncycastle.util.encoders.Base64.decode( encode );
		System.out.println( "decode:" + new String( decode ) );
	}

	public static void main( String[] args ) {
		jdkBase64();
		commonsCodecBase64();
		bouncyCastleBase64();
	}
}


Base64算法应用场景

e-mail
密钥
证书文件


Base64算法

产生:邮件的“历史问题”
定义:基于64个字符的编码算法
衍生:Base16、Base32、Url Base64


Base64算法与加解密算法

Base64算法可以充当加解密算法,但是由于它的算法和码表都是公开的,所以很明显它是违反了柯克霍夫原则的一种方式,也比较容易被破解掉。当然也可以通过一些方式,比如加一些sort,或者在编码之前我们掺杂一些字符做一些扰码,然后再去Base64,这样相对来说可能会安全一些。其实Base64就是用的一种替换的方式来实现的算法

java加密、解密技术系列:Base64

斌斌 (给我写信) 原创博文(http://blog.csdn.net/binbinxyz),转载请注明出处!学习比特币,接触最多的肯定要属比特币地址了。它是一长串的字母和数字组合,例如:`1A1zP...

用Java实现BASE64加密解密

  • 2017年08月02日 10:12
  • 7KB
  • 下载

java加密解密研究3、Base64算法

  • 2013年05月06日 18:29
  • 277KB
  • 下载

java中Base64转码与解码(加密与解密)原理与使用

Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,大家可以查看RFC2045~RFC2049,上面有MIME的详细规范。Base64编码可用于在HTTP环境下传递较长的标识信息。例如...

java_base64加密解密实例

  • 2016年04月22日 10:43
  • 208KB
  • 下载

java实现base64加密

  • 2012年05月25日 15:34
  • 7KB
  • 下载

Java Base64、AES、SHA1、MD5加密算法

public class DecriptTest { public static String SHA1(String decript) { try { ...

java RCS4+BASE64加密/解密工具类

  • 2017年11月16日 11:25
  • 5KB
  • 下载

加密解密算法java实现(1)—BASE64

加密解密算法java实现(1)—BASE64
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java加密系列之(二)Base64加密
举报原因:
原因补充:

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