在客戶(hù)端開(kāi)發(fā)中,我們常常遇到需要將數(shù)據(jù)加密保存或提交的問(wèn)題,下面我們來(lái)看看兩種常用的加密方式
(一) 首先我們需要引入庫(kù) import CommonCrypto
(二) 創(chuàng)建一個(gè)String擴(kuò)展:代碼如下
import CommonCrypto
extension String {
///MD5 加密
func md5() -> String {
let cStr = self.cString(using: String.Encoding.utf8);
let buffer = UnsafeMutablePointer<UInt8>.allocate(capacity: 16)
CC_MD5(cStr!,(CC_LONG)(strlen(cStr!)), buffer)
let md5String = NSMutableString();
for i in 0 ..< 16{
md5String.appendFormat("%02x", buffer[i])
}
free(buffer)
return md5String as String
}
///sha1 加密
func sha1() -> String {
//UnsafeRawPointer
let data = self.data(using: String.Encoding.utf8)!
var digest = [UInt8](repeating: 0, count:Int(CC_SHA1_DIGEST_LENGTH))
let newData = NSData.init(data: data)
CC_SHA1(newData.bytes, CC_LONG(data.count), &digest)
let output = NSMutableString(capacity: Int(CC_SHA1_DIGEST_LENGTH))
for byte in digest {
output.appendFormat("%02x", byte)
}
return output as String
}
}
轉(zhuǎn)載至:
flyToSky_L的博客