iOS 字符串 MD5
Objective-C 实现
需要引入头文件
#import <CommonCrypto/CommonCrypto.h>
这里用方法实现
+ (nullable NSString *)md5:(nullable NSString *)str {
if (!str) return nil;
const char *cStr = str.UTF8String;
unsigned char result[CC_MD5_DIGEST_LENGTH];
CC_MD5(cStr, (CC_LONG)strlen(cStr), result);
NSMutableString *md5Str = [NSMutableString string];
for (int i = 0; i < CC_MD5_DIGEST_LENGTH; ++i) {
[md5Str appendFormat:@"%02x", result[i]];
}
return md5Str;
}
Swift 实现
需要创建桥接文件 "项目名-Bridging-Header.h",在文件中引入头文件
#import <CommonCrypto/CommonCrypto.h>
给 String 添加属性,获取 MD5 值
extension String {
var md5: String {
let str = cString(using: .utf8)
let strLen = CC_LONG(lengthOfBytes(using: .utf8))
let digestLen = Int(CC_MD5_DIGEST_LENGTH)
let result = UnsafeMutablePointer<CUnsignedChar>.allocate(capacity: digestLen)
CC_MD5(str!, strLen, result)
var hash = ""
for i in 0..<digestLen {
hash = hash.appendingFormat("%02x", result[i])
}
result.deallocate(capacity: digestLen)
return hash
}
}
转载请注明出处:http://www.cnblogs.com/silence-cnblogs/p/6688700.html