advantis
2/28/2015 - 9:23 PM

SHA1 digest in Swift

SHA1 digest in Swift

import Foundation

func sha1(data: NSData) -> String {
    let length = Int(CC_SHA1_DIGEST_LENGTH)
    var digest = [UInt8](count: length, repeatedValue: 0)
    CC_SHA1(data.bytes, CC_LONG(data.length), &digest)
    return digest.map { String(format: "%02x", $0) }.reduce("", +)
}

func sha1(string: String) -> String? {
    return string.dataUsingEncoding(NSUTF8StringEncoding).map(sha1)
}