⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 threedes.java

📁 *北京联通全网有关网上订购和点播接口URL加密算法 * *采用3DES加密, ECB模式/使用PKCS7方式填充不足位, *目前给的密钥是192位(24个字节)经过BASE64编码后的可见
💻 JAVA
字号:
/*
 *北京联通全网有关网上订购和点播接口URL加密算法
 *
 *采用3DES加密, ECB模式/使用PKCS7方式填充不足位,
 *目前给的密钥是192位(24个字节)经过BASE64编码后的可见字符串
 *
 *作者:xuchean@gmail.com
 */

import java.net.*;
import sun.misc.*;
import java.security.*;
import javax.crypto.*;
import javax.crypto.spec.*;

/*
 * 配置: 从http://www.bouncycastle.org/latest_releases.html上下载对应JDK的“Provider”,
 * 如JDK1.6对应bcprov-jdk16-137.jar, 放入CLASSPATH即可.
 */

public class ThreeDes {
	private static final Cipher cipher = initCipher();
	private static final BASE64Encoder base64 = new BASE64Encoder();

	private static final Cipher initCipher() {
		try {
			// 添加新安全算法:PKCS7
			Security
					.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
			String algorithm = "DESede/ECB/PKCS7Padding";
			SecretKey desKey = new SecretKeySpec((new BASE64Decoder())
					.decodeBuffer("27jrWz2sxrVbR+pnyg6jWHhgNk4sZo46"),
					algorithm);
			Cipher tcipher = Cipher.getInstance(algorithm);
			tcipher.init(Cipher.ENCRYPT_MODE, desKey);
			return tcipher;
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

	public static String encrypt(String src, String charset) {
		try {
			return URLEncoder.encode(encrypt(src), charset);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

	public static String encrypt(String src) {
		return base64.encode(encrypt(src.getBytes()));
	}

	public static byte[] encrypt(byte[] src) {
		try {
			return cipher.doFinal(src);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

	public static void main(String[] args) {

		System.out
				.println(encrypt("3033$13311083060$D10$2004-02-24 16:19:27")
						.equals(
								"KoewfwcFjuBwlzVOh5UOU3FU/8weXQd9B1RoLeVS3UCp9aVfQuivfSTrJofn/7d9"));
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -