Криптографическое хеширование преобразует данные в дайджест фиксированной длины, который невозможно обратить. Оно обычно используется для проверки целостности данных, хранения паролей (с солью) и цифровых подписей.
Фреймворк CryptoKit от Apple предоставляет чистый, нативный Swift API. Используй SHA256.hash(data:) для вычисления безопасного хеша:
import CryptoKit
let data = Data("hello".utf8)
let hash = SHA256.hash(data: data)
let hashString = hash.compactMap { String(format: "%02x", $0) }.joined()
SHA256, SHA384, SHA512 и SHA1 (legacy)Для старых iOS-таргетов используй библиотеку CommonCrypto через bridging header:
import CommonCrypto
func sha256(_ input: String) -> String {
let data = Data(input.utf8)
var digest = [UInt8](repeating: 0, count: Int(CC_SHA256_DIGEST_LENGTH))
data.withUnsafeBytes { CC_SHA256($0.baseAddress, CC_LONG(data.count), &digest) }
return digest.map { String(format: "%02x", $0) }.joined()
}
CommonCrypto только когда требуется обратная совместимостьМетод SHA256.hash(data:) из CryptoKit обратим, что позволяет восстановить исходные данные из хеша.
Новый — ещё не проверен сообществом
Вы