如何对QByteArray进行异或运算? 如何在C++中使用QBYTAREARE?我试图解密一个由python脚本XOR加密的json文件,以便将其作为QJsonDocument加载
更新如何对QByteArray进行异或运算? 如何在C++中使用QBYTAREARE?我试图解密一个由python脚本XOR加密的json文件,以便将其作为QJsonDocument加载,c++,qt,C++,Qt,更新 def encrypt(input): key = ['K', 'C', 'Q'] output = [] for i in range(len(input)): xor_num = ord(input[i]) ^ ord(key[i % len(key)]) output.append(chr(xor_num)) return ''.join(output) 这里是我在C++代码中对XBR QByTurRay: QBy
def encrypt(input):
key = ['K', 'C', 'Q']
output = []
for i in range(len(input)):
xor_num = ord(input[i]) ^ ord(key[i % len(key)])
output.append(chr(xor_num))
return ''.join(output)
这里是我在C++代码中对XBR QByTurRay:
QByteArray arr = file.readAll();
char key[3] = {'K', 'C', 'Q'};
for (int i = 0; i < arr.size(); i++)
arr[i] = arr[i] ^ key[i % (sizeof(key) / sizeof(char))];
QByteArray arr=file.readAll();
字符键[3]={'K','C','Q'};
对于(int i=0;i
您需要循环遍历每个元素,并将xor应用于QByteArray
的每个元素。这应该很容易。操作符[](int)的示例可以用作起点:您有加密数据的python脚本吗?如果是这样的话,也许你应该编辑你的问题并添加它。好的!这就是我想做的,但我对Qt是新手,所以我有点迷路了。我更新了python代码,虽然我不知道这个用例,但为什么不使用Qt和一些python库支持的正确加密方法呢?好吧,至少,显示示例加密数据(使用十六进制,因为您处理的是位,请参见QByteArray::toHex()
),以方便起见)、预期输出和实际输出(也是十六进制的)。当然会很好。