欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

swift 3.0  md5加密和sha1加密

程序员文章站 2022-05-12 20:21:27
...

简单记录使用swift3.0开发,加密md5和sha1的方法:Md5Sha1 的demo下载地址:https://github.com/feifeiios/Md5Sha1

先新建一个项目,名为:Md5Sha1。

建一个名为Header.h的文件,在project中设置 ,如图:

swift 3.0  md5加密和sha1加密

在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
 以上为我在项目开发中,使用到的加密方法。如有不同,欢迎留言