2009-10-26 5 views

ответ

8

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

$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 может работать с множеством алгоритмов хеширования.

О, и, кроме того:

  • sha1 существует с PHP 4
  • hash только существует с PHP> = 5.1.2
+0

Благодаря Паскаля, у меня тоже были подозрения по поводу кода, потому что базовая кодировка afaik используется для перехода от двоичного к символам, поэтому используется больше с шифрованием. Были ли ваши проблемы похожими? – Chris

+1

Добро пожаловать :-) Не уверен, что вы имеете в виду, но по умолчанию sha1 уже возвращает строку (если второй параметр не установлен в true); поэтому нет необходимости в кодировке base64 –

+0

Звучит неплохо, вы меня уже разобрали. – Chris