【Java】(1)Base64加密技术

1. Jdk

	/**
	 * 使用jdk实现base64加密
	 */
	public static void jdkBase64() {
		try {
			BASE64Encoder encoder = new BASE64Encoder();
			String encode = encoder.encode(src.getBytes());
			System.out.println("encode:" + encode);

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

在使用这种方式的情况,可能会出现找不到BASE64Encoder的情况,这样子解决:

右键项目-->属性-->Java build path-->Libraries-->jre System Library-->Access rules-->Edit-->Add-->Resolution选择Accessible,Rule Pattern填入**-->ok即可。

2. Commons Codec

	/**
	 * 使用commonsCodes实现base64加密
	 */
	public static void commonsCodesBase64() {
		byte[] encodeBytes = Base64.encodeBase64(src.getBytes());
		System.out.println("encode:" + new String(encodeBytes));

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

3. Bouncy Castle

	/**
	 * 使用BouncyCastle实现base64加密
	 */
	public static void bouncyCastleBase64() {
		byte[] encodeBytes = org.bouncycastle.util.encoders.Base64.encode(src
				.getBytes());
		System.out.println("encode:" + new String(encodeBytes));

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

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-12-22 12:24:35

【Java】(1)Base64加密技术的相关文章

Java android DES+Base64加密解密

服务器与客户端加密解密传输, 中间遇到各种坑,客户端无论用AES还是DES解密时都会出现错误,后来才看到好多人说要用AES/DES加完密后还要BASE64加密,照做时发现android和java的Base64加密解密不一致,只好不使用java或android的Base64重新在网上找了一个,感谢以下两位提供的代码,两段分别转载自以下博客. https://www.cnblogs.com/xuhaiqing/archive/2013/03/12/2955837.html https://www.c

Java加密技术(一)——BASE64与单向加密算法MD5&SHA&MAC

http://snowolf.iteye.com/blog/379860 加密解密,曾经是我一个毕业设计的重要组件.在工作了多年以后回想当时那个加密.解密算法,实在是太单纯了.     言归正传,这里我们主要描述Java已经实现的一些加密解密算法,最后介绍数字证书.     如基本的单向加密算法: BASE64 严格地说,属于编码格式,而非加密算法 MD5(Message Digest algorithm 5,信息摘要算法) SHA(Secure Hash Algorithm,安全散列算法) H

Java加密技术(一)——BASE64与单向加密算法MD5&SHA&MAC

加密解密,曾经是我一个毕业设计的重要组件.在工作了多年以后回想当时那个加密.解密算法,实在是太单纯了. 言归正传,这里我们主要描述Java已经实现的一些加密解密算法,最后介绍数字证书. 如基本的单向加密算法: BASE64 严格地说,属于编码格式,而非加密算法 MD5(Message Digest algorithm 5,信息摘要算法) SHA(Secure Hash Algorithm,安全散列算法) HMAC(Hash Message Authentication Code,散列消息鉴别码)

Java常用加密技术和代码总结

总结类文章,把一些常用的Java加密技术和核心代码写在这边,供参考. 首先大家要记住现代密码学最重要的原则柯克霍夫原则: 数据的安全基于密钥而不是算法的保密.也就是说即使密码系统的任何细节已为人悉知,只要密匙未洩漏,它也应是安全的. 具体来说: 系统必须可用,非数学上不可译码. 系统不一定要保密,可以轻易落入敌人手中. 密匙必须可以不经书写的资料交换和记忆,且双方可以改变密匙. 系统可以用于电讯. 系统可以转移位置,它的功能必须不用经过几个人之手才可达到. 系统容易使用,不要求使用者的脑力过份操

Java加密技术(四)非对称加密算法RSA

RSA  这种算法1978年就出现了,它是第一个既能用于数据加密也能用于数字签名的算法.它易于理解和操作,也很流行.算法的名字以发明者的名字命名:Ron Rivest, AdiShamir 和Leonard Adleman. 这种加密算法的特点主要是密钥的变化,上文我们看到DES只有一个密钥.相当于只有一把钥匙,如果这把钥匙丢了,数据也就不安全了.RSA同时有两把钥匙,公钥与私钥.同时支持数字签名.数字签名的意义在于,对传输过来的数据进行校验.确保数据在传输工程中不被修改. 流程分析: 甲方构建

Java加密技术(八)——数字证书

本篇的主要内容为Java证书体系的实现. 请大家在阅读本篇内容时先阅读 Java加密技术(四),预先了解RSA加密算法. 在构建Java代码实现前,我们需要完成证书的制作. 1.生成keyStroe文件 在命令行下执行以下命令: Shell代码   keytool -genkey -validity 36000 -alias www.zlex.org -keyalg RSA -keystore d:\zlex.keystore keytool -genkey -validity 36000 -a

URL中加入BASE64加密的字符串引起的问题(java.net.MalformedURLException:Illegal character in URL)

序 昨天在做一个 Demo 的时候,由于是调用第三方的接口,采用的是 HTTP 的通信协议,按照文档上的说明,需要把参数进行加密后加入到 URL 中,但是,就是这个看似普普通通的操作,却让我着实费了很大的劲. 背景 关于 BASE64,我不想说太多,因为这是很基本的一种编码方式,或者说是加密方式.不了解的可以到我前面的博客中去看看,关于加密,前边有一个系列的文章.下面说说出现这个问题的情景. 昨天拿到一个任务,写一个 Demo,目的是查询一系列的信息,当然,需要调用一个第三方的接口,根据接口文档

(iOS)Base64加密和DES加密、以及JAVA和iOS中DES加密统一性问题

我们在项目中为了安全方面的考虑,通常情况下会选择一种加密方式对需要安全性的文本进行加密,而Base64加密和DES64加密是常用的加密算法.我记得我在前一个项目中使用的就是这两种加密算法的结合:Base64 + DES加密.当然这需要移动端和后台服务器做一个统一. 1.Base64加解密 值得一提的是:apple提供了基础的Base64加解密算法.这样我们就可以直接使用方法去实现Base64加解密.先看一下apple都提供了哪些方法: @interface NSData (NSDataBase6

Java的3种Base64加密方法

Java的3种Base64加密方法 , 分别是 jdk默认实现的加密方式, 使用cc的加密方式和使用bc的加密方式 import java.io.IOException; import org.apache.commons.codec.binary.Base64; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; public class Main { public static void main(String[] ar