2015-11-16 77 views
0

我試圖驗證這個散列沒有搞砸,並使用時間戳來做到這一點。我知道沒有蠻力的方式無法顛倒散列。我如何能夠在以後驗證它?驗證sha256散列

有沒有我不知道的php代碼?

請謝謝。

$log = fopen($datalog, 'a') or die("can't open file"); 

echo " "; 
echo "IP: "; 
echo $address; 
$addressHash = hash_hmac('sha256', $address, $key); 
$add64 = base64_encode($addressHash); 
fwrite ($log, $add64); 
echo " "; 
echo "INFO: "; 
echo $info; 
$infoHash = hash_hmac('sha256', $info, $key); 
$info64 = base64_encode($infoHash); 
fwrite ($log, $info64); 
echo " "; 
echo "TIMESTAMP: "; 
echo $datetimeStamp; 
$tsHash = hash_hmac('sha256', $datetimeStamp, $key); 
$ts64 = base64_encode($tsHash); 
fwrite ($log, $ts64); 
echo " "; 
echo "COUNTRY: "; 
echo $country; 
$countryHash = hash_hmac('sha256', $country, $key); 
$country64 = base64_encode($countryHash); 
fwrite ($log, $country64); 
echo " "; 
echo "LATITUDE: "; 
echo $lat; 
$latHash = hash_hmac('sha256', $lat, $key); 
$lat64 = base64_encode($latHash); 
fwrite ($log, $lat64); 
echo " "; 
echo "LONGITUDE: "; 
echo $long; 
$longHash = hash_hmac('sha256', $long, $key); 
$long64 = base64_encode($longHash); 
fwrite ($log, $long64); 

fclose($log); 

} 
+0

爲什麼你base64_encode哈希? – dev0

回答

0

生成字符串,你認爲PHP是散列並將它傳遞給不同的sha256計算器來比較結果。 有在線計算器 - 只需要谷歌sha256 online就可以得到一個。另外,在Linux/OSX上有一個終端sha256計算器(我的linux上的sha256sum)。它可以在終端中使用如下:

echo "string to sha" | sha256sum 

希望這會有所幫助。