• 大小: 4KB
    文件类型: .java
    金币: 1
    下载: 0 次
    发布日期: 2021-06-07
  • 语言: Java
  • 标签: *  

资源简介

北京联通全网有关网上订购和点播接口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

评论

共有 条评论

相关资源