swift 3.0  md5加密和sha1加密

簡單記錄使用swift3.0開發,加密md5和sha1的方法:Md5Sha1 的demo下載地址:https://github.com/feifeiios/Md5Sha1

先新建一個項目,名爲:Md5Sha1。

建一個名爲Header.h的文件,在project中設置 ,如圖:

在Header.h中,引入代碼如下:(此方法爲使用MD5加密)

#import <CommonCrypto/CommonDigest.h>//md5
新建Encryption.swift文件,內部代碼如下:

extension String {
    //MARK: - 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
        
    }
    //MARK: - 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
    }

    
}

使用時候,代碼如下:

  
        let string = "123456"
        let string_md5 = string.md5()
        
        let string_sha1 = string.sha1()
        
        print("string = \(string)")
        print("string_md5 = \(string_md5)")
        print("sting_sha1 = \(string_sha1)")
打印日誌:

string = 123456
string_md5 = e10adc3949ba59abbe56e057f20f883e
sting_sha1 = 7c4a8d09ca3762af61e59520943dc26494f8941b
 以上爲我在項目開發中,使用到的加密方法。如有不同,歡迎留言
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章