我正致力于加密的简单蛮力。蛮力攻击是微不足道的,但我正在努力用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
有人认出我做错了吗?
由于
麦
答案 0 :(得分:0)
事实证明有两个问题。第一个是截断的零,可以通过使用格式告诉它有多少零并使用十六进制来轻松修复。因此,而不是{0}它变成{0:016x},然后事实上我试图通过添加0x自己来解决这个问题,这是Artjom指出的第二个问题