我正在尝试在 DES 中实现填充 oracle 攻击。我对 CBC 解密过程的理解(或者至少我在课堂上被告知的)是这样的:
假设我们的密文只有两个块,C0 和 C1。解密过程然后与 C1 进行 C0 异或,然后解密。之后,oracle 检查填充并返回 True 或 False。
我的问题是关于异或,我不明白如何在 python 中对两个字符串值进行异或(我对这一切都很陌生)。
所以如果我有价值观:
C0 = 'f20bdba6ff29eed7'
C1 = '58b1ffb4210a580'
我如何对这两者进行异或运算,以便查看预言机是否返回正确的值?
编辑:我已经尝试过以下代码:如何在 python 中按位异或两个字符串?
但是我得到了一个看起来很奇怪的输出,这就是为什么我发布了一个单独的问题。任何帮助将不胜感激谢谢