Swift中有的时候会涉及数据加密问题,GitHub有开源的加密算法代码CryptoSwift。
MD5生成的是固定的128bit,即128个0和1的二进制位,而在实际应用开发中,通常是以16进制输出的,所以正好就是32位的16进制,也就是32个16进制的数字。
Swift中如果只是需要MD5加密,可以自己单独扩展一下字符串,需要新建一个OC文件,在xx-Bridging-Header.h 文件中导入OC文件:
#import <CommonCrypto/CommonDigest.h>
需要在BuildSetting中确认桥接文件是否一致:
实现代码:
extension String {
func md5() -> String {
let str = self.cString(using: String.Encoding.utf8)
let strLen = CUnsignedInt(self.lengthOfBytes(using: String.Encoding.utf8))
let digestLen = Int(CC_MD5_DIGEST_LENGTH)
let result = UnsafeMutablePointer<CUnsignedChar>.allocate(capacity: digestLen)
CC_MD5(str!, strLen, result)
let hash = NSMutableString()
for i in 0 ..< digestLen {
hash.appendFormat("%02x", result[i])
}
result.deinitialize()
return String(format: hash as String)
}
}
参考链接
http://stackoverflow.com/questions/24123518/how-to-use-cc-md5-method-in-swift-language