Может ли кто-нибудь сказать мне в очень медленном выражении разницу между этими двумя строками PHP?Как эти две строки кода отличаются?
$hassh = base64_encode(sha1($word));
$hassh = hash(’sha1′, $word);
Может ли кто-нибудь сказать мне в очень медленном выражении разницу между этими двумя строками PHP?Как эти две строки кода отличаются?
$hassh = base64_encode(sha1($word));
$hassh = hash(’sha1′, $word);
Не уверен, что вы подразумеваете под "другой", но в первой строке:
$hassh = base64_encode(sha1($word));
var_dump($hassh);
получает вас:
string 'YWFmNGM2MWRkY2M1ZThhMmRhYmVkZTBmM2I0ODJjZDlhZWE5NDM0ZA==' (length=56)
Где второй:
$hassh = hash('sha1', $word);
var_dump($hassh);
Получение:
string 'aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d' (length=40)
Итак, прежде всего, я не уверен, что вы имели в виду использовать base64_encode: не кажется, что на самом деле здесь ПОЛЕЗНЫЕ, и, вероятно, не является необходимым: sha1 уже возвращает строку:
$word = 'hello';
var_dump(sha1($word));
получает вас:
string 'aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d' (length=40)
Excepts для этого, эти две линии, с алгоритмом sha1, получить то же самое. Разница, вероятно, в том, что hash
может работать с множеством алгоритмов хеширования.
О, и, кроме того:
Благодаря Паскаля, у меня тоже были подозрения по поводу кода, потому что базовая кодировка afaik используется для перехода от двоичного к символам, поэтому используется больше с шифрованием. Были ли ваши проблемы похожими? – Chris
Добро пожаловать :-) Не уверен, что вы имеете в виду, но по умолчанию sha1 уже возвращает строку (если второй параметр не установлен в true); поэтому нет необходимости в кодировке base64 –
Звучит неплохо, вы меня уже разобрали. – Chris