Created
June 7, 2023 05:01
-
-
Save thanakijwanavit/85802337e6ae7500c7edf619b3b4df36 to your computer and use it in GitHub Desktop.
swift hashing extension
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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