Я рассматривал этот вопрос ( это какой-то взлом CakePHP? ), И когда я смотрел на код, я увидел эту строку:
$wp_cw_kses_split = '>=^/E]u*PDAF$!V'^']O;N18*L%*"2MN8';
Когда я повторяю это, это create_function
.
Как это работает? Я имею в виду, что это даже строка? Внутри него нет поддержки.
Демо: http://ideone.com/rk2Og
Он выполняет побитую операцию XOR по двум строкам: '>=^/E]u*PDAF$!V'
и ']O;N18*L%*"2MN8'
.
var_dump('>' ^ ']'); // string(1) "c" var_dump('=' ^ 'O'); // string(1) "r" var_dump('^' ^ ';'); // string(1) "e" // ... etc
Побитовая операция XOR выполняется по коду ASCII символов, поэтому для первого,
">" = 62 (ASCII) = 0111110 ^ = XOR ------- "]" = 93 (ASCII) = 1011101 ========================== "c" = 99 (ASCII) = 1100011
Это побитовая операция XOR для строк, что означает, что значения ascii символов XORed. Руководство Пример 2
У вас есть две разные строки: >=^/E]u*PDAF$!V
и ]O;N18*L%*"2MN8
Это выражение, операция двух строк:
1: '>=^/E]u*PDAF$!V' operator: ^ - bitwise XOR 2: ']O;N18*L%*"2MN8'
Как вы можете видеть, '
не« не привязаны », но это по замыслу. Это выглядит немного загадочно, поэтому мозг не читает его как три вещи, а одно (визуальный рисунок конца строки просто слишком привлекателен).