import CommonCrypto import Foundation
public extension String {
var MD5: Data { let messageData = self.data(using:.utf8)! var digestData = Data(count: Int(CC_MD5_DIGEST_LENGTH)) _ = digestData.withUnsafeMutableBytes { digestBytes in messageData.withUnsafeBytes { messageBytes in CC_MD5(messageBytes.baseAddress, CC_LONG(messageData.count), digestBytes.bindMemory(to: UInt8.self).baseAddress) } } return digestData } var SHA1: Data { let data = Data(self.utf8) var digest = [UInt8](repeating: 0, count:Int(CC_SHA1_DIGEST_LENGTH)) data.withUnsafeBytes { _ = CC_SHA1($0.baseAddress, CC_LONG(data.count), &digest) } return data } var MD5String: String { return self.MD5.map { String(format: "%02hhx", $0) }.joined() } var SHA1String: String { return self.SHA1.map { String(format: "%02hhx", $0) }.joined() }
}