Чем эти две строки кода отличаются? - PullRequest
0 голосов
/ 26 октября 2009

Может кто-нибудь сказать мне очень медленно разницу между этими двумя строками PHP?

$hassh =  base64_encode(sha1($word));

$hassh =  hash(’sha1′, $word);

1 Ответ

8 голосов
/ 26 октября 2009

Не уверен, что вы подразумеваете под "другим", но первая строка:

$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)

За исключением этого, эти две строки с алгоритмом sha1 получают одно и то же. Разница, вероятно, заключается в том, что hash может работать с множеством алгоритмов хеширования.

О, а также:

  • sha1 существует с PHP 4
  • hash существует, поскольку PHP> = 5.1.2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...