Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/148.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
PHP中带有Key的XOR字符串是整数 我正在通过Socket从我的C++应用程序向我的服务器发出HTTP POST请求,我将在发送到我的服务器之前,从我的C++应用程序中扫描POST值。一旦这些XORed POST值被发送到我的服务器,我需要能够在处理服务器上的值之前对它们进行“解密” 我的C++应用程序目前是XORE字符串,类似于_Php_C++_Xor - Fatal编程技术网

PHP中带有Key的XOR字符串是整数 我正在通过Socket从我的C++应用程序向我的服务器发出HTTP POST请求,我将在发送到我的服务器之前,从我的C++应用程序中扫描POST值。一旦这些XORed POST值被发送到我的服务器,我需要能够在处理服务器上的值之前对它们进行“解密” 我的C++应用程序目前是XORE字符串,类似于

PHP中带有Key的XOR字符串是整数 我正在通过Socket从我的C++应用程序向我的服务器发出HTTP POST请求,我将在发送到我的服务器之前,从我的C++应用程序中扫描POST值。一旦这些XORed POST值被发送到我的服务器,我需要能够在处理服务器上的值之前对它们进行“解密” 我的C++应用程序目前是XORE字符串,类似于,php,c++,xor,Php,C++,Xor,我试着这样称呼它 $decryptedValue = XOR($_POST['postParam1'], "16"); $decryptedValue = XOR($_POST['postParam1'], 16); 像这样 $decryptedValue = XOR($_POST['postParam1'], "16"); $decryptedValue = XOR($_POST['postParam1'], 16); 但$CRETCHOLDED值中存储的值与C++应用程序发送的XOR

我试着这样称呼它

$decryptedValue = XOR($_POST['postParam1'], "16");
$decryptedValue = XOR($_POST['postParam1'], 16);
像这样

$decryptedValue = XOR($_POST['postParam1'], "16");
$decryptedValue = XOR($_POST['postParam1'], 16);

但$CRETCHOLDED值中存储的值与C++应用程序

发送的XORD值不匹配

例如,如果在我的C++应用程序中,XOR测试的键为0x10,返回值为

0x64, 0x75, 0x63, 0x64
0x45, 0x53, 0x42, 0x42
但如果在服务器上进行XOR测试,返回值为

0x64, 0x75, 0x63, 0x64
0x45, 0x53, 0x42, 0x42

您需要使用ord将字符转换为整数,然后使用$key(不使用key作为字符串)对其进行异或,然后使用chr将其转换回字符。否则,它是包含16的字符串的字符串值的异或,这显然不能获得相同的结果

function encrypt($string, $key)
{
    for($i = 0; $i < strlen($string); $i++) 
            $string[$i] = chr(ord($string[$i]) ^ $key);
    return $string;
}