資源簡介
北京聯通全網有關網上訂購和點播接口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
評論
共有 條評論