2024-09-28 17:04:40 发布
网友
mipText是任何二进制字符串
键如:(48、34、65、168、91、nn)
请解释下面的代码
def test(mipText,keys): mipText = list(mipText) for i, encryptedChar in enumerate(mipText): mipText[i] = encryptedChar ^ keys[i & 0xFF] return mipText
它使用提供的长度为256字节的keys密钥,用simple XOR cipher对mipText进行加密(或解密,无所谓)。在
keys
mipText
keys[i & 0xFF]是适当的密钥字节(位于i mod 256第i mod 256位上的keys)。在
keys[i & 0xFF]
i mod 256
encryptedChar ^ keys[i & 0xFF]使用适当的密钥字节对原始mipText字符串的第i字节执行异或运算。在
encryptedChar ^ keys[i & 0xFF]
i
mipText[i] = encryptedChar ^ keys[i & 0xFF]将原始mipText字符串的第i个字节替换为该字节的加密版本。在
mipText[i] = encryptedChar ^ keys[i & 0xFF]
注意,由于XOR的两个应用程序产生了原始结果,所以该算法是对称的:如果提供原始字符串,则对其进行加密;如果提供加密字符串,则对其进行解密。在
XOR
它用文件的内容创建一个列表
例如。 解包后的“Hello Word”变成[72,101,108,108,111,32,87,111,114,108,100]
然后用键中的值对每个索引进行异或运算(例如,0b010101^0b110011='0b100110')
i&0xFF只是确保键的索引永远不会大于0xff(255)…基本上与i%256相同,只是速度更快
i&0xFF
i%256
返回256字节密钥字符串的第i个值。在
然后用相关加密字符(^=XOR)对该值进行异或运算
它使用提供的长度为256字节的
keys
密钥,用simple XOR cipher对mipText
进行加密(或解密,无所谓)。在keys[i & 0xFF]
是适当的密钥字节(位于i mod 256
第i mod 256
位上的keys
)。在encryptedChar ^ keys[i & 0xFF]
使用适当的密钥字节对原始mipText
字符串的第i
字节执行异或运算。在mipText[i] = encryptedChar ^ keys[i & 0xFF]
将原始mipText
字符串的第i
个字节替换为该字节的加密版本。在注意,由于
XOR
的两个应用程序产生了原始结果,所以该算法是对称的:如果提供原始字符串,则对其进行加密;如果提供加密字符串,则对其进行解密。在它用文件的内容创建一个列表
例如。 解包后的“Hello Word”变成[72,101,108,108,111,32,87,111,114,108,100]
然后用键中的值对每个索引进行异或运算(例如,0b010101^0b110011='0b100110')
i&0xFF
只是确保键的索引永远不会大于0xff(255)…基本上与i%256
相同,只是速度更快返回256字节密钥字符串的第i个值。在
然后用相关加密字符(^=XOR)对该值进行异或运算
相关问题 更多 >
编程相关推荐