iOS 字符串 MD5


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM