我想驗證一個字符串是另一個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. 有沒有一種方法來評估一個文字字符串在VIm中引用的字符串?
- 3. 將SHA256哈希字符串轉換爲Python中的SHA256哈希對象
- 4. 我有一個方法來返回一個哈希映射,
- 5. 有沒有一種方法來確定在Java方法中使用的變量?
- 6. iPhone:有沒有一種方法來loadNumber並有一個reuseIdentifier?
- 7. 有沒有一種方法來確定語法中的歧義?
- 8. 有沒有一種有效的方法來確定距離?
- 9. 有沒有一種方法來處理Python中字符串中的兩個單詞之間的子字符串?
- 10. 有沒有一種方法來定位前一個元素?
- 11. 有沒有一種方法來grep或解析一個變量
- 12. 有沒有一種簡單的方法從C中的字符串數組創建一個字符串?
- 13. SHA256哈希中的字符數
- 14. 有沒有一種「正確的方法」來避免output_buffering?
- 15. 生成一個字符串哈希來比較兩個子字符串
- 16. 有沒有一種方法來讀取在java中的Internet Explorer
- 17. 的Java:字符串:有沒有更好的方法來比較字符串
- 18. 有沒有更好的方法來確定一個字符串是否可以是try/catch以外的整數?
- 19. 有沒有辦法根據字符串測試一個int? (Java)
- 20. 有沒有一種比較笨拙的方式來存儲一個Ruby哈希值?
- 21. 這是一個安全/有效的哈希方法實現?
- 22. 有沒有一種更有效的方法來從Ruby對象集合中構建排序哈希?
- 23. 我想添加一個哈希到一個字符串中的所有哈希(PHP)
- 24. 是否有一種容忍細微差別的哈希算法?
- 25. 有沒有一種簡化的方式來取消在C#中的字符串?
- 26. 一種方法調用字符串的另一種方法
- 27. 字符串的唯一哈希
- 28. PHP:有沒有一種簡單的方法來修改字符串通過分裂他們每N個符號?
- 29. 有沒有一種方法來單元測試異步方法?
- 30. 有沒有一種簡單的方法來獲得一個utf8編碼字符串的子字符串,在python中子字符串的repr長度小於N
散列不是加密。目前你的要求很不清楚。基本上驗證散列的方法是重新散列字符串,並查看您是否獲得相同的散列。 –