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()
TAKE YOUR SKILLS TO THE NEXT LEVEL If you like Hacking with Swift, you'll love Hacking with Swift+ – it's my premium service where you can learn advanced Swift and SwiftUI, functional programming, algorithms, and more. Plus it comes with stacks of benefits, including monthly live streams, downloadable projects, a 20% discount on all books, and free gifts!
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.