我在网上找的很多是结合oc写的,随着swift更新都不可用了,方法都换了。我重新整理了下,swift5.0可用
swift实现sha1加密算法,需要在Bridging-Header.h文件中添加下述语句
(建立桥接文件请自行查找方法)
#import<CommonCrypto/CommonHMAC.h>
方法如下:
对加密后的数据进行base64编码
//sha1加密
extension String{
func sha1() -> String {
let data = self.data(using: String.Encoding.utf8)!
var digest = [UInt8](repeating: 0, count: Int(CC_SHA1_DIGEST_LENGTH))
CC_SHA1([UInt8](data), CC_LONG(data.count), &digest)
let resultBytes = Data(bytes: digest, count: Int(CC_SHA1_DIGEST_LENGTH))
let resultStr = resultBytes.base64EncodedString()
return resultStr
//无需base64输出,装换为16进制字符串输出
// let output = NSMutableString(capacity: Int(CC_SHA1_DIGEST_LENGTH))
// for byte in digest {
// output.appendFormat("%02x", byte)
// }
// return output as String
}
}
调用如下:
let str = "111111".sha1()
网友评论