How to use CC_MD5 method in swift language

后端 未结 9 2156
南旧
南旧 2020-12-01 02:52

in Objective-c, we can hash a string like this:

const char *cStr = [someString UTF8String];
unsigned char result[16];
CC_MD5( cStr, strlen(cStr), result );
m         


        
9条回答
  •  清歌不尽
    2020-12-01 03:13

    For cases where a bridging header isn't an option (eg, in a shell script), you can use the command line tool /sbin/md5 via NSTask:

    import Foundation
    
    func md5hash(string: String) -> String
    {
      let t = NSTask()
      t.launchPath = "/sbin/md5"
      t.arguments = ["-q", "-s", string]
      t.standardOutput = NSPipe()
    
      t.launch()
    
      let outData = t.standardOutput.fileHandleForReading.readDataToEndOfFile()
      var outBytes = [UInt8](count:outData.length, repeatedValue:0)
      outData.getBytes(&outBytes, length: outData.length)
    
      var outString = String(bytes: outBytes, encoding: NSASCIIStringEncoding)
    
      assert(outString != nil, "failed to md5 input string")
    
      return outString!.stringByTrimmingCharactersInSet(NSCharacterSet.newlineCharacterSet())
    }
    

    Usage:

    let md5 = md5hash("hello world")
    
    // 5eb63bbbe01eeed093cb22bb8f5acdc3
    

提交回复
热议问题