python/Java DES解密代码

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

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;
    }
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值