IOS

swift实现字符串的MD5加密

2019-02-20  本文已影响0人  瑟闻风倾
多种加密类型.png

(1)自定义swift文件StringHelper.swift

//
//  StringHelper.swift
//  JackUChat
//
//  Created by 徐云 on 2019/2/19.
//  Copyright © 2019 Liy. All rights reserved.
//

import Foundation

extension String {
    //md5加密
    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)
    }
 
}

(2)字符串的MD5加密测试

func testMD5() {
        let str:String = "我是要加密的字符串"
        let md5 = str.md5()
        print(md5)

        let str1 = "55555555555"
        print("加密前:" + str1)
        let str1_md5 = str1.md5()
        print("加密后:" + str1_md5)
        
        let str2 = "22222222222"
        print("加密前:" + str2)
        let str2_md5 = str2.md5()
        print("加密后:" + str2_md5)
        
        let str3 = "66666666666"
        print("加密前:" + str3)
        let str3_md5 = str3.md5()
        print("加密后:" + str3_md5)
  
    }

结果

加密前:我是要加密的字符串
加密后:7fbdc46a4e51335d3cf567ecfc1eb2f5
加密前:55555555555
加密后:9079b6ee1d5ca04ab00e44e877a222ee
加密前:22222222222
加密后:13723a026a1a9b499f0e9f9fb8f4f6ad
加密前:66666666666
加密后:68bac75ed032e0a86bc3eae1b5c996cf
上一篇 下一篇

猜你喜欢

热点阅读