-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