?? desencrypter.java
字號(hào):
import java.io.IOException;
import java.security.Key;
import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
public class DesEncrypter {
public byte[] desEncrypt(byte[] src, byte[] enKey) {
byte[] encryptedData = null;
try {
Key sKey = new SecretKeySpec(enKey, "DES");
Cipher cp = Cipher.getInstance("DES/CBC/Nopadding");
byte biv[] = new byte[8];
IvParameterSpec iv = new IvParameterSpec(biv);
cp.init(1, sKey, iv);
int len = src.length % 8 != 0 ? (src.length / 8 + 1) * 8
: src.length;
byte[] resMisdn = new byte[len];
System.arraycopy(src, 0, resMisdn, 0, src.length);
encryptedData = cp.doFinal(resMisdn);
} catch (Exception e) {
e.printStackTrace();
}
return encryptedData;
}
public String desDecrypt(byte[] debase64, String spKey) {
String strDe = null;
try {
byte[] enKey = new byte[8]; // 密鑰文件(byte)
System.arraycopy(spKey.getBytes(), 0, enKey, 0,
spKey.getBytes().length);
Key sKey1 = new SecretKeySpec(enKey, "DES");
Cipher cp = Cipher.getInstance("DES/CBC/Nopadding");
byte biv[] = new byte[8];
IvParameterSpec iv = new IvParameterSpec(biv);
cp.init(Cipher.DECRYPT_MODE, sKey1, iv);
byte ciphertext1[] = cp.doFinal(debase64);
strDe = new String(ciphertext1).trim();
} catch (Exception ex) {
strDe = "";
ex.printStackTrace();
}
return strDe;
}
public String base64DesEncrypt(String src, String key) {
DesEncrypter encrypter = new DesEncrypter();
byte desEncrypted[] = encrypter.desEncrypt(src.getBytes(), key
.getBytes());
BASE64Encoder encoder = new BASE64Encoder();
String encrypted = encoder.encode(desEncrypted);
return encrypted;
}
public String base64DesDecrypt(String src, String key) {
DesEncrypter encrypter = new DesEncrypter();
String decrypted = null;
try {
BASE64Decoder decoder = new BASE64Decoder();
byte base64Decrypted[] = decoder.decodeBuffer(src);
decrypted = encrypter.desDecrypt(base64Decrypted, key);
} catch (IOException e) {
System.out.println("base64DesDecrypt IOException:" + e);
}
return decrypted;
}
// Here's an example that uses the class:
public static void main(String args[]) {
String key = "sohugate";
// 加密
DesEncrypter encrypter = new DesEncrypter();
String encrypted = encrypter.base64DesEncrypt("13466375130", key);
System.out.println(encrypted);// 結(jié)果
// 解密
String decrypted = encrypter.base64DesDecrypt(encrypted, key);
System.out.println(decrypted);// 結(jié)果
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -