📄 docdecoder.java
字号:
package com.lanx.app.security.base64;
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESKeySpec;
import javax.crypto.spec.IvParameterSpec;
import sun.misc.BASE64Decoder;
/**
* <p>解密类</p>
*
* @author Ramboo Lan
* @version 0.5
* @Date: 2006-06-09
*/
public class DocDecoder extends AbstractDocCoder {
public DocDecoder() {
super();
}
/**
* 对字符串或者文件进行解密处理
*
* @param str 需要解密的字符串或者文件路径
* */
public String decode(String str) throws Exception {
// Decode encryption data
BASE64Decoder base64 = new BASE64Decoder();
byte[] sorData = base64.decodeBuffer(str);
// Decrypting data
byte[] retByte = decodeByteData(sorData);
return new String(retByte);
}
private byte[] decodeByteData(byte[] sourceData) throws Exception {
// Create SecretKey object
byte[] encryptionByte = encryptionString.getBytes();
DESKeySpec dks = new DESKeySpec(encryptionByte);
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
SecretKey securekey = keyFactory.generateSecret(dks);
// Create IvParameterSpec object with initialization vector
IvParameterSpec spec=new IvParameterSpec(encryptionIV);
Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");
cipher.init(Cipher.DECRYPT_MODE, securekey, spec);
return cipher.doFinal(sourceData);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -