或者是由Microsoft自定義的算法?我測試了在mac上使用OpenSSL計算的SHA1等價於使用system.security.cryptography.sha1在C#中計算的哈希值。system.security.cryptography.sha1是否使用OpenSSL庫的SHA1算法實現?
1
A
回答
4
System.Security.Cryptography.SHA1是一個抽象類。它有三種實現方式:
- SHA1Managed:在純C#實現
- SHA1CryptoServiceProvider:由Windows 提供一個實現
- SHA1Cng:另一個( 「下一代」)實施由Windows
提供因此,不,.NET Framework附帶的實現都沒有在內部使用OpenSSL。
Mono爲這些類提供不同的實現。他們都使用the same implementation這是用純C#編寫的。
你得到相同結果的原因是SHA1算法是確定性的,即它總是對同一輸入產生完全相同的結果。
2
微軟幾乎肯定會有自己的實現。
SHA-1是一個(確定性)散列函數,因此如果將其應用於相同的輸入數據,則應該使用兩個不同的實現獲得相同的結果。如果你不這樣做,它不僅僅意味着兩個實現是不同的,它也意味着其中一個是bug。
+0
是的,越野車的實施是我的關注。謝謝! – burkestar 2010-09-29 17:21:47
相關問題
- 1. Openssl實現改進的sha1哈希
- 2. 在flex中實現SHA1算法
- 3. 如何使SHA256而不是sha1使OpenSSL?
- 4. Openssl sha1長度
- 5. 該算法是否實現LRU或MRU?
- 6. 如何使用OpenSSL計算RSA-SHA1(sha1WithRSAEncryption)值
- 7. sha1在C中使用openssl庫的例子
- 8. 是否可以使用迭代器實現遞歸算法?
- 9. 是否可以使用python實現火災探測算法
- 10. OpenSSL SHA1校驗和
- 11. 使用javascript實現算法
- 12. Openssl的SHA1編譯問題
- 13. SHA1 OpenSSL的分段錯誤
- 14. 8051 MCU的SHA1實現?
- 15. OpenSSL SHA1 API和命令行實用程序的輸出差異
- 16. Openssl的RAND_bytes算法
- 17. 其中是openssl中的SHA1_Init實現
- 18. 使用pari庫實現按位運算
- 19. Dijkstra的算法實現使用類
- 20. Hashtable實現中使用的算法?
- 21. 使用OpenSSL API實現Windows CryptoAPI CryptDeriveKey
- 22. 在Java中實現RSA-SHA1簽名算法(創建用於OAuth RSA-SHA1簽名的私鑰)
- 23. 使用ASP.NET Core計算SHA1
- 24. ASP.NET是否使用SHA256或SHA1?
- 25. SHA1 JavaScript實現了大串
- 26. 是否有一個Java庫實現Strassen的矩陣求逆算法?
- 27. Floyd的循環檢測算法的實現是否不正確?
- 28. 使用Matlab實現的算法進行時間比較是否有問題?
- 29. 是否有使用TensorFlow實現異常檢測算法的示例?
- 30. 是否可以將我們的對稱算法添加到OpenSSL?
哇,謝謝。我擔心的是執行錯誤。 – burkestar 2010-09-29 17:22:30