Создание хэша SHA256 с помощью swift4

Я немного осмотрелся, но смог найти только примеры, использующие Objective-C для создания хэшей SHA256. Есть ли способ сделать это только с Swift4?


person Matthew N    schedule 16.10.2017    source источник
comment
Возможный дубликат SHA256 в swift   -  person Andy Ibanez    schedule 17.10.2017


Ответы (1)


Вы можете использовать так:

func ccSha256(data: Data) -> Data {
    var digest = Data(count: Int(CC_SHA256_DIGEST_LENGTH))

    _ = digest.withUnsafeMutableBytes { (digestBytes) in
        data.withUnsafeBytes { (stringBytes) in
            CC_SHA256(stringBytes, CC_LONG(data.count), digestBytes)
        }
    }
    return digest
}

Вы можете позвонить так:

let str = "givesomestringtoencode"
let data = ccSha256(data: str.data(using: .utf8)!)
print("sha256 String: \(data.map { String(format: "%02hhx", $0) }.joined())")

Добавьте следующее в файл заголовка моста:

#import <CommonCrypto/CommonHMAC.h>
person Vini App    schedule 17.10.2017
comment
Когда я добавляю функцию в свой код, она дает мне несколько ошибок - person Matthew N; 17.10.2017
comment
Пожалуйста, проверьте мой обновленный ответ. У вас есть импорт CommonCrypto в заголовке моста. - person Vini App; 17.10.2017