资源简介
北京联通全网有关网上订购和点播接口URL加密算法 * *采用3DES加密, ECB模式/使用PKCS7方式填充不足位, *目前给的密钥是192位(24个字节)经过BASE64编码后的可见字符串
代码片段和文件信息
package com.neusoft.avnc.lbs.common.tools;
/*
*北京联通全网有关网上订购和点播接口URL加密算法
*
*采用3DES加密 ECB模式/使用PKCS7方式填充不足位
*目前给的密钥是192位(24个字节)经过base64编码后的可见字符串
*
*作者:xuchean@gmail.com
*/
import java.net.URLEncoder;
import java.security.Security;
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
import sun.misc.base64Decoder;
import sun.misc.base64Encoder;
/*
* 配置: 从http://www.bouncycastle.org/latest_releases.html上下载对应JDK的“Provider”
* 如JDK1.6对应bcprov-jdk16-137.jar 放入CLASSPATH即可.
*/
public class ThreeDes {
private static Cipher cipher = null;
private static base64Encoder base64Encoder = new base64Encoder();
private static base64Decoder base64Decode = new base64Decoder();
public static final String ALGORITHM = “DESede/ECB/PKCS7Padding“;
private synchronized static Cipher initCipher(int mode String key) {
try {
// 添加新安全算法:PKCS7
Security.addProvider(new BouncyCastleProvider());
SecretKey desKey = new SecretKeySpec((new base64Decoder()).decodeBuffer(key) ALGORITHM);
Cipher tcipher = Cipher.getInstance(ALGORITHM);
tcipher.init(mode desKey);
return tcipher;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
public synchronized static String encrypt(String src String charset String key) {
try {
return URLEncoder.encode(encrypt(src key) charset);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
public synchronized static String encrypt(String src String key) {
return base64Encoder.encode(encrypt(src.getBytes() key));
}
public synchronized static byte[] encrypt(byte[] src String key) {
try {
cipher = initCipher(Cip
- 上一篇:android 4.4 原生闹钟源码
- 下一篇:javax.xm
l.bind.jar
评论
共有 条评论