Skip to content

Instantly share code, notes, and snippets.

@thanakijwanavit
Created June 7, 2023 05:01
Show Gist options
  • Save thanakijwanavit/85802337e6ae7500c7edf619b3b4df36 to your computer and use it in GitHub Desktop.
Save thanakijwanavit/85802337e6ae7500c7edf619b3b4df36 to your computer and use it in GitHub Desktop.
swift hashing extension
import Foundation
import CryptoKit
extension String {
private func hash<H: HashFunction>(with closure: () -> H) -> String {
let inputData = Data(self.utf8)
let hash = H.hash(data: inputData)
let hashString = hash.compactMap { String(format: "%02hhx", $0) }.joined()
return hashString
}
var md5: String {
return hash { Insecure.MD5() }
}
var sha1: String {
return hash { Insecure.SHA1() }
}
var sha224: String {
return hash { SHA256() }
}
var sha256: String {
return hash { SHA256() }
}
var sha384: String {
return hash { SHA384() }
}
var sha512: String {
return hash { SHA512() }
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment