Что делает | оператор, когда он появляется в параметрах md5 ()?

В куске кода, изначально не написанном мной, я нашел это:

md5($variable1|$variable2|$variable3)

Я знаю, что код шифрует что-то с помощью md5, Я пытаюсь понять, что | Оператор делает, когда используется таким образом.

ОБНОВЛЕНИЕ 1: Это не сцепление конечно. Это будет иметь смысл для меня что-то вроде этого:

$finalString = $variable1.$variable2.$variable3;
md5($finalString);

Но | оператор ИЛИ Я пытаюсь понять что md5($variable1|$variable2|$variable3) делает, используя | оператор как часть параметров в пределах md5() метод. Кстати, это PHP-код.

0

Решение

Трубный оператор | указывает на то, что побитовое ИЛИ происходит между вашими тремя переменными.

Однако если $variable3 Текстовый, как вы указываете, тогда я не понимаю, почему вы будете делать это.

Посмотрите на код ниже. Он использует пример данных, которые вы разместили в комментариях:

$variable1 = 2432;
$variable2 = 3234322;
$variable3 = 'adtw2GEt4PrPghhfLApae';

echo '1: ' . $variable1 . '<br />';
echo '2: ' . $variable2 . '<br />';
echo '3: ' . $variable3 . '<br /><br />';

echo '1|2: ' . ($variable1 | $variable2) . '<br />';
echo '1|2|3: ' . ($variable1 | $variable2 | $variable3) . '<br /><br />';

echo '1.2: ' . ($variable1 . $variable2) . '<br />';
echo '1.2.3: ' . ($variable1 . $variable2 . $variable3) . '<br /><br />';

echo 'md5 1|2|3: ' . md5($variable1|$variable2|$variable3) . '<br />';
echo 'md5 1.2.3: ' . md5($variable1.$variable2.$variable3) . '<br />';

Вы сразу увидите, что 1|2 дает тот же результат, что и 1|2|3, что означает, что второе побитовое ИЛИ ничего не делает (потому что это строка):

1|2: 3234706
1|2|3: 3234706

Если вы рассматриваете все три переменные как строку, то вы получите совершенно другой хэш MD5, как и следовало ожидать:

md5 1|2|3: fdea81fcefba5a598cf3124d7dbf3854
md5 1.2.3: 8cc6383034ed459ad7a135fcb8cb86de

Так md5($variable1|$variable2|$variable3); такой же как md5(3234706); (что просто $variable1|$variable2) и даже не использует третью переменную.

MD5 не является шифрованием: Я заметил, что вы упомянули шифрование в комментариях. MD5 — это не шифрование, это алгоритм хеширования, который совершенно другой.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]