我在網(wǎng)上找的很多是結(jié)合oc寫(xiě)的,隨著swift更新都不可用了,方法都換了。我重新整理了下,swift5.0可用
swift實(shí)現(xiàn)sha1加密算法,需要在Bridging-Header.h文件中添加下述語(yǔ)句
(建立橋接文件請(qǐng)自行查找方法)
#import<CommonCrypto/CommonHMAC.h>
方法如下:
對(duì)加密后的數(shù)據(jù)進(jìn)行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
//無(wú)需base64輸出,裝換為16進(jìn)制字符串輸出
// let output = NSMutableString(capacity: Int(CC_SHA1_DIGEST_LENGTH))
// for byte in digest {
// output.appendFormat("%02x", byte)
// }
// return output as String
}
}
調(diào)用如下:
let str = "111111".sha1()