Base64

   博客分类: 学习笔记 文章类型: 原创

Base64

本文字数为 2303 字, 预计读完大约需要 7 分钟

java密码之Base64

[TOC]

安全和密码

密码常用术语

明文,密文,加密,加密算法,加密密钥,解密,解密算法,解密密钥,密码分析,主动攻击,被动攻击,密码体制,密码协议,密码系统,柯克霍夫原则(对密钥保密,对算法公开)

密码分类以及java的安全组成

根据时间分类

根据保密内容:

根据密码体制:

对称密码算法 非对称密码算法

根据明文处理方法:

散列函数(验证数据的完整度)

数字签名(针对以数字形式存储的消息进行的处理)

OSI安全体系

TCP/IP安全体系

网络接口层、网络层、传输层、应用层。

Java的安全组成

JDK相关包及第三方扩展

Base64算法介绍

基于64个字符的编码算法

例子

要进行加密的字符串

String src = "I'm Learing Base64";

jdk:

/**
	 * 通过jdk实现base64加密
	 * import sun.misc.BASE64Decoder;
	 */
void jdkBase64() {
	// 进行编码
	BASE64Encoder encoder = new BASE64Encoder();
	String encodeStr = encoder.encode(src.getBytes());
	System.out.println("encodeStr:" + encodeStr);
	// 进行解码
	String decodeStr = null;
	BASE64Decoder decoder = new BASE64Decoder();
	try {
		decodeStr = new String(decoder.decodeBuffer(encodeStr));
	} catch (IOException e) {
		e.printStackTrace();
	}
	System.out.println("decodeStr:" + decodeStr);
}

commonsCodec:

/**
 * 使用CommonsCodec进行加密
 * import org.apache.commons.codec.binary.Base64;
 */
public static void commonsCodecBase64() {
    //进行加密
    byte[] encodeBytes = Base64.encodeBase64(src.getBytes());
    System.out.println("encodeBytes:" + new String(encodeBytes));
    byte[] decodeBytes = Base64.decodeBase64(encodeBytes);
    System.out.println("decodeBytes:" + new String(decodeBytes));
}

bouncyCastle:

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

    byte[] decodeBytes = org.bouncycastle.util.encoders.Base64.decode(encodeBytes);
    System.out.println("decodeStr:" + new String(decodeBytes));
}
  • 上一篇:梦鬼
  • 下一篇:对称加密算法