我有一些加密的文本(在欧洲央行模式下用3 3DES加密,没有盐)。
我的问题:我如何使用单词列表解密它们?(或者没有?)
示例:
加密文本:
Xfi+h4Ir6l7zXCP+N4EPvQ==用于此的单词列表:
foo
bar
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'
$ 帮帮忙好吗?
发布于 2014-02-27 15:50:09
如果要使用pyDES,首先必须将脚本配置为使用3 3DES.下面是提供的pyDES示例,修改为使用3 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.所以,在我修改的例子中,我配置了这样的params .
Key: DESCRYPTDESCRYPT
Mode: ECB
IV: "\0\0\0\0\0\0\0\0"
pad: None
padmode: PAD_PKCS5因此,从这里开始,您需要将上面的“data”变量更改为您想要解密的密文,然后将您的字列表加载到一个数组中,设置一个循环来通过'key‘param迭代数组中的值.
https://stackoverflow.com/questions/22070990
复制相似问题