假設我編寫了一個標準算法(如MD *或SHA *)的實現:我如何知道它是正確的?相同算法的不同實現必須產生相同的摘要?哈希算法的測試平臺過程是什麼?
回答
參考文件本身包含少量的示例的情況下,可以使用的。 (的散列是在所有的參考文件,例如。)另外,阿龍吉福德已經提供在http://www.adg.us/computers/sha.html若干測試用例。特別是,他對一些邊界情況進行了測試(文本正好是一個塊的長度,或者更少一些,還有一些其他特殊長度。如果您的實現爲所有這些計算了正確的值,那麼一個很好的機會,這是正確的。
是的,這是事實。然而,一些散列算法帶有變化/設置,所以如果情況如此,您需要匹配那些散列算法。
一個很好的例子是MD5是經常考慮如何讓你驗證下載是正確的。爲了實現這一點,MD5哈希實現需要爲所有實現產生相同的結果。
,什麼是測試平臺過程?... – user1849534
,我不知道有任何。我將採取一個成熟的應用,使自己的測試集。當然,大多數編程語言已經有庫,可以使哈希爲您服務。 – Thirler
只是採取設置有MD5和一些開源軟件的焦油球,並確保你得到相同的結果。如果沒有,你的代碼被打破了。一旦你能得到它對上一個pacakge,嘗試幾個MROE –
- 1. 哈希方法使用什麼平等?
- 2. 跨平臺哈希碼
- 3. 測試在哈希
- 4. Rabin-Karp算法的最佳哈希函數是什麼?
- 5. 這兩個hash哈希算法是什麼?
- 6. 什麼是算法哈希與登錄控制?
- 7. C++哈希算法
- 8. 使用Python檢測SSL哈希算法
- 9. 一致哈希和錐哈希之間的區別是什麼?
- 10. 什麼是杜鵑哈希中的「新哈希函數」?
- 11. #10 verilog測試平臺的真正含義是什麼?
- 12. 什麼是RSpec良好的自動化測試平臺?
- 13. 哈希:測試密鑰
- 14. 什麼哈希算法是可並行化的?利用多核CPU優化大文件的哈希
- 15. wpa_passphrase是否使用哈希算法?
- 16. 哈希中的4/16是什麼?
- 17. Enumerations中哈希的含義是什麼?
- 18. 什麼是MongoDB哈希的大小?
- 19. 爲什麼我的哈希不是undef?
- 20. 在Rails中,什麼是壓縮哈希到嵌套哈希
- 21. 什麼是用於計算對象的哈希碼
- 22. C#什麼是計算一個xml飼料的哈希
- 23. Python的字典映射使用什麼哈希算法?
- 24. 什麼樣的哈希算法產生這種文本?
- 25. Python:Rabin-Karp算法哈希
- 26. 雙向哈希算法?
- 27. 現代PHP哈希算法
- 28. Amazon DynamoDB哈希算法
- 29. constexprizing化jesteress哈希算法
- 30. ASP密碼哈希算法
所以......只有「經驗法則」 – user1849534
@ user1849534你不可能測試所有可能的輸入;?因爲日長度不受限制,案件數量將是無限的。你需要的是一組好的測試用例。在參考文檔和Aaron Gifford的網站之間,我總共有26個測試用例(但並非所有的哈希算法都適用)。如果測試用例覆蓋了通常的極限情況,那麼考慮到算法的性質,這應該足夠了。 –
我們不會對所有可能的函數進行算術運算,我們對此進行了數學分析,我正在考慮類似的東西...... – user1849534