-1
有人能真的很慢地告訴我這兩行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)
節選本,這兩條線,與SHA1算法,得到同樣的事情。差異可能是hash
可以使用很多散列算法。
哦,還有,也:
感謝帕斯卡,我對代碼懷疑過,因爲afaik base編碼用於從二進制轉換爲chars,所以在加密時使用更多。你的擔心是否類似? – Chris 2009-10-26 05:44:44
不客氣:-)不知道你的意思,但是,默認情況下,sha1已經返回一個字符串(如果第二個參數沒有設置爲true);所以,不需要base64編碼 – 2009-10-26 05:53:02
聽起來不錯,你已經整理出來了。 – Chris 2009-10-26 06:02:30