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;
}