2010-08-16 43 views
0

我試圖解密一個變量,我已經從我的web服務器加密過,並沒有得到任何好運。我已經使用php中的sha1(變量)在網站上加密了這個變量,但是一旦它傳回到iphone,我就試圖解密它。如果你有其他的代碼,而不是sha1的作品,我也很高興。謝謝從服務器解密結果

回答

1

True,MD5 & SHA1是單向散列算法。如果您想要編碼然後解碼變量,您需要使用mcrypt函數。

+0

謝謝Meloth。你碰巧知道解密iPhone端變量的任何示例代碼? – 2010-08-16 12:54:47

+0

這是我一段時間寫的一堂課。它應該給你一個好的開始。 http://pastebin.com/ffUNgRfC – Thilo 2010-08-16 16:25:07

3

SHA1不是一種加密技術。

SHA1是一個散列。它的設計是不可逆轉的。

+0

那麼什麼是最安全的方式可以說,檢索一個密碼,返回作爲JSON? (沒有顯示實際的密碼) – 2010-08-16 04:44:59

+0

@Joseph:你檢查用戶給你的東西是否可以散列(用它的鹽)到存儲的值。鹽是一個隨機數,你(a)保留和(b)添加到用戶提供的密碼。它確保即使每個人使用相同的密碼,散列值也都不相同。 – 2010-08-16 04:55:02

2

你不能解密單向散列。這裏的關鍵詞是單向。 哈希算法只有一種方法。

爲了進行有效性檢查,您應該首先計算另一個字符串的散列值,然後比較這些值。

+0

好的,但在這種情況下,我需要知道原文。我怎樣才能安全地做到這一點? – 2010-08-16 04:46:39

+0

爲什麼你不能只應用散列和**然後**比較? – 2010-08-16 04:53:32

+0

@約瑟夫:你爲什麼需要知道原文?一般認爲是不好的做法來存儲原始密碼。 – 2010-08-16 04:56:26

0

如果你有密碼散列,那麼你不應該需要'取消散列'它,對吧?這就是整個問題。您將密碼存儲在數據庫/服務器中作爲散列,並且當您需要檢查密碼時,會散列用戶的登錄嘗試並進行比較。或者我錯過了什麼?