python2 DES解密脚本
from pyDes import des, ECB, PAD_PKCS5
# 解密16进制字符串类型的加密文本
def des_decrypt_by_hex(s):
key = "92961e84"
K = des(key, ECB, key, pad=None, padmode=PAD_PKCS5)
# 需要二进制类型的字符串
de = K.decrypt(binascii.a2b_hex(s), padmode=PAD_PKCS5)
# 直接解密字符串
def des_decrypt_by_str(s):
key = "92961e84"
K = des(key, ECB, key, pad=None, padmode=PAD_PKCS5)
# 需要二进制类型的字符串
de = K.decrypt(bytes(s), padmode=PAD_PKCS5)
des_decrypt_by_hex("8d0c6ee22759e76a41026be26daea091db2c70b70c2005852c3a358368275fde70b7854a13e7e09f")
Java DES解密脚本
解密字符串
import java.util.Base64;
import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESKeySpec;
public static String decrypt(String stEncryptStr) {
String result = "";
String k = "92961e84";
byte[] bt1 = stEncryptStr.getBytes();
public static SecretKey key = SecretKeyFactory.getInstance("DES").generateSecret(new DESKeySpec(k.getBytes()));
try {
Cipher instance = Cipher.getInstance("DES");
instance.init(2, key);
result = new String(instance.doFinal(bt1));
System.out.println(result);
return result;
} catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchPaddingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvalidKeyException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalBlockSizeException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (BadPaddingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return result;
}

本文提供了Python和Java两种语言实现DES加密解密的脚本代码,包括从十六进制字符串解密和直接解密字符串的方法。Python部分使用pyDes库,Java部分使用标准的加密解密API。
1万+

被折叠的 条评论
为什么被折叠?



