我正在運行在應用程序兩端使用SHA-256的服務 - 一個是服務器端PHP實現,另一個是客戶端iOS實現。在兩側使用算法的結果是相同的字母數字字符串,除了所有字母在iOS上大寫並且在PHP上使用小寫。事實上,它們是相同的字母數字字符串,這讓我相信SHA-256不區分大小寫,但我找不到任何支持我的假設的文檔。有人可以給我看一些文件來證實這一點嗎?SHA-256不區分大小寫?
6
A
回答
14
如果您指的是十六進制字符串輸出,那麼是的,這是不區分大小寫的。它是二進制數據的文本表示。
http://en.wikipedia.org/wiki/Hexadecimal
的算法本身是最肯定的區分大小寫。
0
所有SHA
系列都是二元算法,它們對於案例一無所知,因此它們不能區分大小寫。
您可以簡單地在具有不同情況的一個字符串中輸出兩個輸出的單機上進行測試,您可以看到它們提供了不同的結果。
在你的情況我想,如果每一件事情是確定的,可能是iOS的顯示在手機大寫的字符串,但在內部傳遞您正常(小寫)的字符串
2
沒有體面的加密散列函數是不區分大小寫,因爲那將更容易產生碰撞。輸出是一個不同的問題。它基本上是一個很大的數字(因此套管不適用於),但是爲了方便起見,它以基數16給出,即使用字母a到f作爲附加數字。十六進制符號確實是不區分大小寫的,或者至少大寫和小寫變體都是常見的並且是公認的。這並不重要,也不會改變代表的數字。
2
如果輸入的二進制表示在兩側都相同,則散列值的二進制表示將相同。十六進制不區分大小寫。
相關問題
- 1. 使區分大小寫不敏感的區分大小寫表
- 2. 區分大小寫的URL不區分大小寫
- 3. VB.NET不區分大小寫;很好的區分大小寫?
- 4. Lucene如何區分大小寫和不區分大小寫
- 5. 爲什麼區分大小寫和不區分大小寫?
- 6. 區分大小寫區分大小寫還是全大寫?
- 7. 不區分大小寫
- 8. 不區分大小寫preg_replace_callback
- 9. distinctUnionOfObjects不區分大小寫
- 10. 不區分大小寫
- 11. System.IO.FileInfo不區分大小寫
- 12. MySQL不區分大小寫
- 13. 不區分大小寫Func
- 14. 不區分大小寫#define
- 15. 不區分大小寫OptionParser
- 16. FirebirdSql不區分大小寫
- 17. 不區分大小寫
- 18. CEDET:不區分大小寫?
- 19. SOLR不區分大小寫
- 20. 不區分大小寫QueryExpression
- 21. 不區分大小寫Restriction.IN
- 22. Zend_Controller_Router_Route_Regex不區分大小寫
- 23. solr不區分大小寫
- 24. GetElementsByTagName不區分大小寫?
- 25. 不區分大小寫array_unique
- 26. 不區分大小寫
- 27. 不區分大小寫鍵
- 28. XDocument.Descendents不區分大小寫
- 29. DataView.ToTable不區分大小寫
- 30. searchlogic不區分大小寫
可能重複[什麼是SHA256的輸出格式](http://stackoverflow.com/questions/6532606/what-is-the-output-format-of-sha256) – 2012-08-09 21:19:19