首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在3des中加密消息,使用模式MODE_ECB,密码长度192,在python中

如何在3des中加密消息,使用模式MODE_ECB,密码长度192,在python中
EN

Stack Overflow用户
提问于 2021-07-07 19:55:20
回答 1查看 97关注 0票数 0

pip安装pycryptodome

代码语言:javascript
运行
复制
from Crypto.Cipher import DES3

def encrypt_3ds(encrData):
    key = b"M4H5DE7mHXMS219b8adm9H4WFTElLfa26e7s3U7dBgT2hegt5fMq5aRfEv3345uiZh2zGxRPaBT663669mb01MCU9OHz2glYb2aOco5vJfoN9LKjxjOIZE64Jd4t9FUQ1F043TvRp4CwBX7Ug8Dp9fV25Zs4m7Z5DIL7H7D617jVcXLHT5Z83atR1sQcJpEG"
    aes = DES3.new(key, DES3.MODE_ECB)
    res = aes.encrypt(pad(encrData).encode('utf-8'))
    msg = str(base64.b64encode(res), encoding='utf8')
    return msg

引发ValueError(“不是有效的TDES密钥”)

java中的函数类。我想用python对消息进行加密。

代码语言:javascript
运行
复制
public class ThreeDES {
    private static final String IV = "1234567-";
    
    public static String encryptThreeDESECB(final String src, final String key) throws Exception {
        final DESedeKeySpec dks = new DESedeKeySpec(key.getBytes("UTF-8"));
        final SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DESede");
        final SecretKey securekey = keyFactory.generateSecret(dks);

        final Cipher cipher = Cipher.getInstance("DESede/ECB/PKCS5Padding");
        cipher.init(Cipher.ENCRYPT_MODE, securekey);
        final byte[] b = cipher.doFinal(src.getBytes());

        final BASE64Encoder encoder = new BASE64Encoder();
        return encoder.encode(b).replaceAll("\r", "").replaceAll("\n", "");

    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-03 03:43:19

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68285554

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档