我已經使用了這個md5,我得到了散列結果。但是,回報如下:<8f833933 03a151ea 33bf6e3e bbc28594>
。對於swift來說是新的,所以我不完全確定它是否是封裝。我該如何擺脫越來越不符號?md5散列返回,封裝在swift中
0
A
回答
0
你可以從簽名看,該函數返回一個NSData對象:
func md5(#string: String) -> NSData
如果你想將它轉換爲字符串,你需要對它進行編碼的人類可讀的格式。最常見的是十六進制表示法。
如果使用較新的雨燕2功能,從這個問題,它返回一個UINT8陣列
func md5(string string: String) -> [UInt8] {
var digest = [UInt8](count: Int(CC_MD5_DIGEST_LENGTH), repeatedValue: 0)
if let data = string.dataUsingEncoding(NSUTF8StringEncoding) {
CC_MD5(data.bytes, CC_LONG(data.length), &digest)
}
return digest
}
你可以使用這個方便toHex
功能:
func toHex(bytes: [UInt8]) -> String {
var numbers = [String]()
for byte in bytes {
if byte < 0x10 {
numbers.append("0")
}
numbers.append(String(byte, radix: 16, uppercase: true))
}
return numbers.joinWithSeparator("")
}
那麼這個返回一個字符串:
toHex(md5("Hello"))
(在我看來,你應該總是喜歡純粹的Swift類型(arr )基礎類型(NSData)。)
+0
@ user3813647如果此答案已解決您的問題,請點擊複選標記,考慮[接受它](http://meta.stackexchange.com/q/5234/179419)。這向更廣泛的社區表明,您已經找到了解決方案,併爲答覆者和您自己提供了一些聲譽。沒有義務這樣做。 – idmean
相關問題
- 1. Python MD5散列相同的內容返回不同的散列
- 2. MD5散列在C#中不匹配MD5散列在行動腳本
- 3. MD5散列逆轉
- 4. MD5散列函數在excel中?
- 5. 在jbuilder中函數返回散列的散列數組
- 6. md5散列值更改
- 7. md5/sha1散列大文件
- 8. 使用md5散列密碼
- 9. PHP加起來MD5散列?
- 10. 從char生成MD5散列[]
- 11. 填充MD5散列算法
- 12. 消息摘要散列MD5
- 13. 組合MD5散列值
- 14. 如何使用md5散列?
- 15. C#MD5散列器例如
- 16. md5散列或更簡單的哈希安裝在android j2me
- 17. R中散點圖的封裝
- 18. Hash.each不返回散列?
- 19. 散列數組返回值
- 20. 等效MD5在linux散列的命令
- 21. Rails中的特定md5散列方案
- 22. Java ME中的MD5密碼散列
- 23. 在Swift中返回一個序列3
- 24. 更改SWIG封裝函數返回值
- 25. 爲什麼相同的輸入返回兩個不同的MD5散列?
- 26. 如何異或MD5散列並返回32個字符的字符串?
- 27. 使用SHA-512和salt來散列MD5散列密碼?
- 28. MD5等作爲散列函數
- 29. Spring Security LDAP和MD5散列密碼
- 30. 將MD5散列表示爲整數
這意味着NSData對象使用其「description」方法打印。如果您搜索「NSData到十六進制字符串」,那麼你應該找到一些解決方案(例如:http://stackoverflow.com/a/29642198/1187415)。 –