您的位置:首页 > 移动开发 > Swift

ios swift sha1 md5 加密

2015-11-18 16:43 423 查看
在Swift中通过调用OC的CommonCrypto库可以很方便的实现String字符串转换为sha1。
在一个swift项目中,需要使用桥接头文件(Bridging header)的方式来引入一个OC库,才能调用OC中的内容。
新建一个Objective-C m文件

xode自动为我们创建了一个swift和OC桥接的文件:项目名-Bridging-Header.h

在Bridging-Header.h文件中输入:

#import <CommonCrypto/CommonCrypto.h>

在自己的swift类中扩展String方法

extension String {

//sha1加密算法

func getSha1() -> String {

let data = self.dataUsingEncoding(NSUTF8StringEncoding)!

var digest = [UInt8](count:Int(CC_SHA1_DIGEST_LENGTH), repeatedValue: 0)

CC_SHA1(data.bytes, CC_LONG(data.length), &digest)

let output = NSMutableString(capacity: Int(CC_SHA1_DIGEST_LENGTH))

for byte in digest {

output.appendFormat("%02x", byte)

}

return output as String

}

}

extension String {

//md5加密算法

func getMd5() -> String {

let str = self.cStringUsingEncoding(NSUTF8StringEncoding)

let strLen = CUnsignedInt(self.lengthOfBytesUsingEncoding(NSUTF8StringEncoding))

let digestLen = Int(CC_MD5_DIGEST_LENGTH)

let result = UnsafeMutablePointer<CUnsignedChar>.alloc(digestLen)

CC_MD5(str!, strLen, result)

let hash = NSMutableString()

for i in 0..<digestLen {

hash.appendFormat("%02x", result[i])

}

result.dealloc(digestLen)

return String(hash)

}

}

使用:

let s = "zhangsan"

print(s.getSha1())

print(s.getMd5())
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: