import CryptoKit
let data:String = "the data to be hashed"
let messageData = string.data(using: .utf8)!
let digestData = Insecure.MD5.hash (data: messageData)
let digestHex = String(digestData.map { String(format: "%02hhx", $0) }.joined().prefix(32))
2条答案
按热度按时间rsaldnfx1#
MD5被弃用是因为它是一个有缺陷的、不安全的算法。如果可以,避免它。但如果因为旧数据或外部要求给出的算法而不得不使用MD5,则可以继续使用。
编译器生成警告。但是你仍然可以使用
CC_MD5
。而且我怀疑苹果是否会删除它,因为它在太多现有的应用程序中使用。您可以选择性地在Objective-C中隐藏警告:
mitkmikd2#
接受的答案只适用于ObjC,因为Swift不支持
#pragma
。此外,整个
CommonCrypto
框架已经过时,并被CryptoKit
框架取代。以下是Swift中使用
CryptoKit
的解决方案: