Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何对QByteArray进行异或运算? 如何在C++中使用QBYTAREARE?我试图解密一个由python脚本XOR加密的json文件,以便将其作为QJsonDocument加载_C++_Qt - Fatal编程技术网

如何对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()
),以方便起见)、预期输出和实际输出(也是十六进制的)。当然会很好。