Хэш sha1 разный в зависимости от того в каких кавычках строка?

В PHP хэш SHA1 не зависит от того, в каких кавычках сформирована строка. Образование хэш-значения SHA1 основано на математической функции, которая преобразует входные данные (строку) в уникальное фиксированное значение фиксированного размера, состоящее из 40 символов в шестнадцатеричной системе. Независимо от того, как оформлена строка, ее хэш-значение SHA1 будет одинаковым.

Однако, форматирование строки может повлиять на содержимое строки, что в конечном итоге может привести к разным хэш-значениям. В PHP кавычки (одинарные или двойные) используются для представления строковых значений. Разница между одинарными и двойными кавычками заключается в том, что двойные кавычки позволяют интерпретатору PHP распознавать и подставлять переменные, а одинарные кавычки считываются буквально.

Рассмотрим простой пример:

$str1 = 'Hello, World!';
$str2 = "Hello, World!";

$hash1 = sha1($str1);
$hash2 = sha1($str2);

echo $hash1; // вывод: 943a702d06f34599aee1f8da8ef9f7296031d699
echo $hash2; // вывод: 943a702d06f34599aee1f8da8ef9f7296031d699

В данном случае переменные $str1 и $str2 содержат одинаковую строку "Hello, World!".
Независимо от того, в каких кавычках заданы эти строки, переменные $hash1 и $hash2 содержат одинаковые значения хэша SHA1: "943a702d06f34599aee1f8da8ef9f7296031d699".

Следует отметить, что хэш-значение SHA1 является детерминированным, что означает, что для одного и того же входного значения хэш-функция всегда будет возвращать одинаковый результат, независимо от формата строки или других факторов в коде.

В заключение, форматирование строки в кавычках не повлияет на хэш-значение SHA1 в PHP. Однако, форматирование строки может влиять на ее содержимое, что в свою очередь может привести к различным хэш-значениям.