Swift version: 5.6
iOS 13 introduced a new framework called CryptoKit, which adds important cryptographic functionality such as encryption and hashing.
If you want to calculate the hash value of a string you need to convert it to an instance of Data
like this:
let inputString = "Hello, world!"
let inputData = Data(inputString.utf8)
You then call the hash(data:)
method of whichever kind of hash you want: SHA-256, SHA-384, or SHA-512. For example, if you wanted to calculate the SHA-256 hash of your data you’d use this:
let hashed = SHA256.hash(data: inputData)
Finally, you can print out the textual representation of the hash – what we’d considered the user-facing hash string itself – like this:
print(hashed.description)
Obviously if you have an instance of Data
you want to hash, you can put that directly into SHA256.hash(data:)
.
If you want to get the string of your hash, you should convert using the String(format:)
initializer, like this:
let hashString = hashed.compactMap { String(format: "%02x", $0) }.joined()
SPONSORED From March 20th to 26th, you can join a FREE crash course for mid/senior iOS devs who want to achieve an expert level of technical and practical skills – it’s the fast track to being a complete senior developer!
Sponsor Hacking with Swift and reach the world's largest Swift community!
Available from iOS 13.0
This is part of the Swift Knowledge Base, a free, searchable collection of solutions for common iOS questions.
Link copied to your pasteboard.