如何獲得散列數據的真實價值?在獲取哈希碼後,您是否仍然可以獲取數據的真實價值? 還是有任何代碼可以反轉輸出。如何獲得散列數據的真實價值?
String ida = new String(txtID.getText().toString());
int idb = ida.hashCode();
codeD.setText("result: " + ida);
我已經得到txtID(已輸入用戶)的哈希碼,但現在我想已經沒有散列調用IDA的真正價值。
如何獲得散列數據的真實價值?在獲取哈希碼後,您是否仍然可以獲取數據的真實價值? 還是有任何代碼可以反轉輸出。如何獲得散列數據的真實價值?
String ida = new String(txtID.getText().toString());
int idb = ida.hashCode();
codeD.setText("result: " + ida);
我已經得到txtID(已輸入用戶)的哈希碼,但現在我想已經沒有散列調用IDA的真正價值。
簡答題:沒有。
長答案: 哈希值是一個快速的單向計算,用於粗略地識別某個項目。在Java中,散列碼通常用於將某些東西放入Map中。散列碼用於在HashMap中用作鍵時標識另一個Object。這並不意味着要存儲數據,只有足夠的不同才能防止衝突。很有可能有兩個具有相同散列的對象。
正如CodeChimp所解釋的,您正在嘗試做的不是哈希,而是加密/解密。 這個例子可以幫助你做到這一點:http://www.example-code.com/java/aes_dataStream.asp
如果你像我一樣,享受重新發明輪子,這可能是有趣的實現:http://en.wikipedia.org/wiki/Affine_cipher
爲了澄清,你有一些散列數據'idb',你想將原始數據恢復正確? – Isaac
關於hashCode()的其他兩個相同的問題已經給出了Java hashCode()的完全有效和正確的解釋 - 您似乎並不明白hashCode()是**不是**加密*方法。 – kaderud
不可能。或者,您可以將哈希碼和對象放在哈希映射中進行搜索選項。 – Rudy