swift实现字符串的MD5加密
2019-02-20 本文已影响0人
瑟闻风倾

(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