2013-02-20 155 views
0

是否有可能在Java中使用bcrypt散列並再次解決它?它甚至有可能嗎?我嘗試了一些新的東西,但我對Unhashing一無所知(如果可能的話)。如果可能的話,有人可以給我一個例子嗎?哈希和Unhash?

如果密鑰已知,是否存在可逆的散列算法?

+3

可逆哈希不是哈希...無損壓縮可能被認爲是一種可逆哈希,但是哈希是非常糟糕的IMHO ... – ppeterka 2013-02-20 15:50:03

+3

哈希與加密不同。查看密鑰的加密和解密。 – 2013-02-20 15:50:54

+2

你聲明「一個哈希算法,如果密鑰是已知的是可逆的」,並且標記了問題「bcrypt」。這表明你正在談論加密,而不是散列。使用正確的術語很重要,因爲這些差異很微妙但非常重要。 – 2013-02-20 15:52:12

回答

1

如果你正在討論重寫hashCode(),如果你的對象可以有超過2^32個狀態,那麼就不可能做出任何可逆的散列。只有2^32個可能的散列值(因爲hashCode()返回int),所以只能表示2^32個不同的狀態。

4

根據定義,散列是單向操作。您無法從其緩存中檢索源值。實際上,可以有許多值產生相同的散列值,但算法將散列值轉換爲值不應理論上存在(根據定義)。

+1

哈希而不是緩存*。 – 2013-02-20 15:55:39