如何从变量中为python中的openssl解密提供密钥

时间:2016-02-03 05:17:43

标签: python encryption openssl

我正致力于加密的简单蛮力。蛮力攻击是微不足道的,但我正在努力用python将所需的值带入openssl。为了避免给其他人做实验室或寻找不良目的的答案,我只会发布与提供密钥相关的代码,但是代码会给我带来问题。

这是我到目前为止所做的。

os.system("openssl des-cbc -in testfile.txt -out testfile.enc -K 0x1122334455667788 -iv 0x1111111111111111") 
for x in range (0,100):
    ...
    argument = "openssl des-cbc -d -in testfile.enc -out testfile.txt -K {0} -iv 0x1111111111111111".format(hex(key))
    print argument
    os.system(argument)
    #add code here to check if the decrypt was successfull

    #increment values for next decryption
    key = key + 0x0000000000000001
    x = x + 1  
    ...

我已尝试使用和不使用0x作为十六进制值,并且在键上使用和不使用十六进制包装器。顺便说一句,我使用python 2.7,所以.format应该没问题,当我使用print语句时,似乎是将值放入字符串中。

这是我收到的错误消息。

非十六进制数字 无效的十六进制iv值

这是我从print语句中得到的。这让我想知道它是否会在值的存储中截断,这可能是我的问题。

openssl des-cbc -d -in testfile.enc -out testfile.txt -K 0x63 -iv 0x1111111111111111

有人认出我做错了吗?

由于

1 个答案:

答案 0 :(得分:0)

事实证明有两个问题。第一个是截断的零,可以通过使用格式告诉它有多少零并使用十六进制来轻松修复。因此,而不是{0}它变成{0:016x},然后事实上我试图通过添加0x自己来解决这个问题,这是Artjom指出的第二个问题