我想驗證一個字符串是另一個sha256表示而不必解密它。這可能嗎?java - 有沒有一種方法來確認一個字符串是sha256哈希?
回答
sha-256值只是一個256位(32字節)值,通常在Java中表示爲String
或byte[]
。
作爲一個價值本身是毫無意義的,如果你想知道一個具體的String
是否是一個散列,那麼任何32字節的數字都是一個無限的未知純文本的散列。但這就像問「我怎麼知道一個32字節的數字是一個數字?」,你會發現你無處可去。
僅當它與純文本配對時纔有用,以便您可以將它與從純文本計算的散列進行比較以驗證它們是否匹配。
「*任何32字節的數字都是無限未知純文本的散列*」=>真的有2^32個可能的SHA256值嗎? – assylias
http://crypto.stackexchange.com/questions/2670/is-every-output-of-a-hash-function-possible – assylias
@assylias:可能你的意思是'2 ^(32 * 8)'可能的SHA256值,但是一般來說,你的問題沒有答案,因爲它涉及的散列函數是特定的。假設任何可能長度的可能數量的純文本,那麼如果函數本身非常適合,散列函數的共域可以是完整的。證明這是一個不同的故事。 – Jack
您可以讓您的機器使用特定規則解析字符串,並嘗試將字符串限定爲sha哈希。以下文章可能會回答你的問題How to determine whether a string is a hash。
是和否。
你可以很容易地測試一個字符串是十六進制的。然後您可以測試它是否包含統計上合理的數字和字母。這將排除一些常見的非sha256字符串。
但是,如果有人創建了一個隨機字符串設計看起來像一個sha256,我不認爲有可能通過任何數學測試區分它與真實的東西。該算法被設計爲對此有效。
- 1. 有沒有一種方法來檢查一個字符串/ char是否存在於另一個字符串中?
- 2. 有沒有一種方法來評估string.contains()方法內的多個字符串?
- 3. 將SHA256哈希字符串轉換爲Python中的SHA256哈希對象
- 4. 我有一個方法來返回一個哈希映射,
- 5. 有沒有一種方法來確定是否刪除用戶?
- 6. 有沒有一種方法來確定一個iframe是可見/主動
- 7. 有沒有一種將Perl哈希序列化爲HTML查詢字符串的簡潔方法
- 8. 這種方法是從sha512哈希生成一個「隨機」數字有效嗎?
- 9. 「屬性應該是一個哈希,但是一個字符串」
- 10. 有沒有一種方法來確定在Java方法中使用的變量?
- 11. Android的Java的哈希表沒有存儲一些字符
- 12. iPhone:有沒有一種方法來loadNumber並有一個reuseIdentifier?
- 13. 有沒有一種方法來確定語法中的歧義?
- 14. 有沒有一種有效的方法來確定距離?
- 15. 如何創建一個SHA256哈希鹽?
- 16. 有沒有一種方法來處理Python中字符串中的兩個單詞之間的子字符串?
- 17. 有沒有一種方法來提取XCode ios項目中的字符串i18n
- 18. 有沒有一種用哈希映射排序的優雅方法?
- 19. 有沒有一種很好的方法從哈希表中獲取布爾值?
- 20. JDBC有沒有一種方法來檢測列是否有默認值?
- 21. 是否有JavaScript方法來查明一個字符串是否是另一個字符串的一部分?
- 22. 雙哈希SHA256
- 23. 有沒有一種方法來設置一個int爲001
- 24. 有沒有一種方法來grep或解析一個變量
- 25. 有沒有一種方法來定位前一個元素?
- 26. SHA256哈希中的字符數
- 27. 一種有效的方法來解析下面的字符串?
- 28. 有沒有一種「正確的方法」來避免output_buffering?
- 29. Smalltalk - 有沒有一種方法來確定數據類型?
- 30. 有沒有一種簡單的方法從C中的字符串數組創建一個字符串?
散列不是加密。目前你的要求很不清楚。基本上驗證散列的方法是重新散列字符串,並查看您是否獲得相同的散列。 –