【问题标题】:How to provide key for openssl decrypt in python from a variable如何从变量为python中的openssl解密提供密钥
【发布时间】: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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-13
    • 2018-02-10
    • 1970-01-01
    • 1970-01-01
    • 2021-06-06
    • 1970-01-01
    • 1970-01-01
    • 2012-04-07
    相关资源
    最近更新 更多