gpt4 book ai didi

python - 如何在 ECB 模式下解密 3DES(使用单词列表)?

转载 作者:太空宇宙 更新时间:2023-11-04 06:05:55 26 4
gpt4 key购买 nike

我有一些加密文本(在 ECB 模式下使用 3DES 加密,没有加盐)。

我的问题:如何使用单词列表解密它们? (或者没有?)

示例:

加密文本:

Xfi+h4Ir6l7zXCP+N4EPvQ==

这个词表:

foo
bar
marketing

加密前的原文是:“marketing”(为了让例子完整)。

我尝试使用注释过的 python 脚本:

$ cat 3des.py 
#!/usr/local/bin/python

from pyDes import *

data = "marketing"
k = des("DESCRYPT", CBC, "\0\0\0\0\0\0\0\0", pad=None, padmode=PAD_PKCS5)
d = k.encrypt(data)
print "Encrypted: %r" % d
print "Decrypted: %r" % k.decrypt(d)
assert k.decrypt(d, padmode=PAD_PKCS5) == data

测试:

$ python 3des.py 
Encrypted: '\xabd\xfc\x98x\x86\x8d\xb5A\xba\x8e\x12,\x1f\x83\xb5'
Decrypted: 'marketing'
$

请帮忙?

最佳答案

如果您要使用 pyDES,您首先必须将脚本配置为使用 3DES...这是提供的 pyDES 示例,已修改为使用 3DES:

from pyDes import *

data = "marketing"
k = triple_des("DESCRYPTDESCRYPT", ECB, "\0\0\0\0\0\0\0\0", pad=None, padmode=PAD_PKCS5)
d = k.encrypt(data)
print "Encrypted: %r" % d
print "Decrypted: %r" % k.decrypt(d)
assert k.decrypt(d, padmode=PAD_PKCS5) == data

分解...

下面一行包含了类的初始化信息:

k = triple_des("DESCRYPTDESCRYPT", ECB, "\0\0\0\0\0\0\0\0", pad=None, padmode=PAD_PKCS5)

根据文档,参数如下:

(key, [mode], [IV], [pad], [padmode])

key -> Bytes containing the encryption key. 8 bytes for DES, 16 or 24 bytes
for Triple DES
mode -> Optional argument for encryption type, can be either
pyDes.ECB (Electronic Code Book) or pyDes.CBC (Cypher Block Chaining)
IV -> Optional Initial Value bytes, must be supplied if using CBC mode.
Length must be 8 bytes.
pad -> Optional argument, set the pad character (PAD_NORMAL) to use during
all encrypt/decrpt operations done with this instance.
padmode -> Optional argument, set the padding mode (PAD_NORMAL or PAD_PKCS5)
to use during all encrypt/decrpt operations done with this instance.

因此,在我修改的示例中,我已经像这样配置了参数...

Key: DESCRYPTDESCRYPT
Mode: ECB
IV: "\0\0\0\0\0\0\0\0"
pad: None
padmode: PAD_PKCS5

因此,从这里开始,您需要将上面的“数据”变量更改为您要解密的密文,然后将您的单词列表加载到一个数组中,设置一个循环以通过“关键参数...

关于python - 如何在 ECB 模式下解密 3DES(使用单词列表)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22070990/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com