Xor

為什麼這段程式碼有效

  • April 21, 2022

我在 CryptoHack 上做了一些介紹性的挑戰,其中一個挑戰,更準確地說是最喜歡的字節,與單個字節的 XOR。

我用給定字元串和單鍵進行異或運算完成了我的解決方案,迭代了 256 個整數,直到找到看起來像“標誌”的東西。

然後我尋找送出的解決方案,其中一個解決方案是:

input_str = bytes.fromhex('73626960647f6b206821204f21254f7d694f7624662065622127234f726927756d')

key = input_str[0] ^ ord('c')
print(''.join(chr(c ^ key) for c in input_str))

給我帶來麻煩的部分是key變數的第三行或賦值。為什麼這個鍵有效?換句話說,他是怎麼找到的?我最好的猜測是他做了我之前做的事情(迭代超過 256 個整數),一旦他找到它,他就修改了他的程式碼。

任何幫助將不勝感激!

這裡沒有什麼非常困難的事情。

正如該網站所說,它的標誌通常採用crypto{y0ur_f1rst_fl4g}格式。因此,您嘗試檢索的標誌的第一個字元很可能是c,這意味著 XOR 密鑰必須是c與密文的第一個字元 (0x73) 異或的 (0x63) 的 ASCII 值。

引用自:https://crypto.stackexchange.com/questions/98375