以十六進制數進行加法並將結果追加到較大的十六進制字符串的結尾處的好方法是什麼?我正在嘗試格式化一個字符串以用於填充oracle攻擊。這些字符串將連接在一起形成一個HTTP請求。Python - 以十六進制數向上
我有一個兩個32個字符的十六進制字符串。 'g'是猜測,pad是填充oracle。基本上我需要做的是有G的最後一個字節十六進制0x00到0xff.The代碼我至今計數是:
split = [value[x:x+32] for x in range (0, len(value), 32)] #Split the CT into 16 byte chunks
IV = unhexlify(split[0])
c0 = unhexlify(split[1])
c1 = unhexlify(split[2])
c2 = unhexlify(split[3])
g = unhexlify("00000000000000000000000000000000")
pad = unhexlify("00000000000000000000000000000001")
pad_xor_guess = xorb(g, pad)
c1_prime = xorb(pad_xor_guess, c1)
attack = str(hexlify(c1_prime + c2).decode())
「攻擊」將被傳遞到查詢方法將追加攻擊字符串的網址。現在我堅持的是我必須發送多達256個HTTP請求來猜測明文的一個字節。我如何使用for循環從00到ff「count up」,將結果附加到g,使其可以與pad和選定的密文塊進行異或運算?到目前爲止,我一直在走這條路,但我堅持如何使用十六進制字符串進行這項工作。
for i in range(0, 20):
#g = bytes([i])
print(bytes([i]),end=' ')
#print(g, end=' ')
'我在範圍內(255):十六進制(i)' – user2097159 2015-02-10 13:29:11