2012-04-06 164 views
-1

我已經從php.net獲得了一個代碼。 http://php.net/manual/en/book.mcrypt.php使用mcrypt和sha-512加密解密?

問題是當你加密某些東西時,下一次加密的東西與第一個不一樣。我需要使用sha512或sha256來獲得完全相同的散列。我還需要解密它,因爲該函數將用於加密客戶的姓名和其他數據。

在此先感謝!

+7

SHA-512是一種單向哈希函數,理論上不可能解密。此外,沒有什麼不好的,相同的輸入產生不同的加密輸出(實際上,這通常更安全)。只要你回到原來的輸入,這不是一個問題 – knittl 2012-04-06 08:22:52

+0

目前還不清楚你到底想做什麼。你想比較一個新的輸入和現有的加密值嗎? →解密並比較。或者,除了加密值之外,您還可以存儲散列值,然後可以散列新輸入並將其與存儲的散列進行比較。 – knittl 2012-04-06 08:26:02

+0

正如@ knittl所說的,你不會使用單向散列函數對已經加密的東西進行解密。 – 2012-04-06 08:26:03

回答

0

而不是使用mcrypt進行散列,請考慮使用hash() function來代替。

請記住,哈希是單向方法,不能被「解密」。

尋找加密/解密我建議你看看AES加密 - 無論是通過MySQL,如果你有你的數據存儲在數據庫中,否則mcrypt()也可以管理AES。

+0

這是不正確的,如果不使用鹽,它可以解密。 https://crackstation.net/ – 2016-11-07 12:02:57

+1

@JohnMax,它不是「解密」。它只是通過在彩虹表中查找它們來匹配相同的哈希值。 – Repox 2016-11-07 13:45:27