【发布时间】:2016-05-12 04:14:46
【问题描述】:
我正在研究一种简单的蛮力加密。蛮力攻击是微不足道的,但我正在努力使用 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 语句时,它似乎是将值放入字符串中。
这是我收到的错误消息。
非十六进制数字 无效的 hex iv 值
这是我从 print 语句中得到的。这让我想知道它是否会在值的存储中被截断,这可能是我的问题。
openssl des-cbc -d -in testfile.enc -out testfile.txt -K 0x63 -iv 0x1111111111111111
有人知道我做错了吗?
谢谢
吉米
【问题讨论】:
-
您是否也从 IV 中删除了
0x? -
是的,这是问题的一部分。另一部分是前导零的截断。我没有同时修复这两个。我还没有完全解决这个问题,但现在不同了。如果在那之前没有一个答案,我会发布我找到的答案。
标签: python encryption openssl