专题_iOS开发相关

Swift 调用sha1

2019-08-06  本文已影响0人  李大瘦

我在网上找的很多是结合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()
上一篇 下一篇

猜你喜欢

热点阅读