天天看点

Base64加解密的两种实现方式

第一种方式  直接加解密

import java.util.Base64;
import java.util.Base64.Decoder;
import java.util.Base64.Encoder;

public class Main {

	static String src = "xuchuanli123";

	public static void main(String[] args) {
		// 获取加密对象
		Encoder encoder = Base64.getEncoder();
		// 加密
		byte[] encode = encoder.encode(src.getBytes());
		// 输出加密结果
		System.out.println("encode : " + new String(encode));

		// 获取解密对象
		Decoder decoder = Base64.getDecoder();
		// 解密
		byte[] decode = decoder.decode(encode);
		// 输出解密结果
		System.out.println("decode :" + new String(decode));
	}

}
           

第二种方式   加料方式

public class Main {

            
static String src = "xuchuanli123";
           
static String mix = "mixed"; //此字符串为加料字符串,混淆加密内容
String   new = src.append(mix);
	public static void main(String[] args) {
		// 获取加密对象
		Encoder encoder = Base64.getEncoder();
		// 加密
		byte[] encode = encoder.encode(new.getBytes());
		// 输出加密结果
		System.out.println("encode : " + new String(encode));

		// 获取解密对象
		Decoder decoder = Base64.getDecoder();
		// 解密
		byte[] decode = decoder.decode(encode);解密结果
           
String result = new String(decode);
           
String finalresult = result.replace("mix","");
		System.out.println("decode :" + finalresult);
	}

}
           
目前加密的应用如下 和多下载 以“迅雷下载”为例:很多下载类网站都提供“迅雷下载”的链接,其地址通常是加密的迅雷专用下载地址。 其实迅雷的“专用地址”也是用Base64"加密"的,其过程如下: 一、在地址的前后分别添加AA和ZZ 二、对新的字符串进行Base64编码 另外  Flashget的与迅雷类似,只不过在第一步时加的“料”不同罢了,Flashget在地址前后加的“料”是[FLASHGET] 而QQ旋风的干脆不加料,直接就对地址进行Base64编码了