Tôi đang cố gắng để có được MD5 băm dữ liệu của tôi (hình ảnh tải về từ interweb). Thật không may, tôi đã nâng cấp khung lên để nhanh chóng 3 và phương pháp tôi đã sử dụng hiện không hoạt động.MD5 của dữ liệu trong Swift 3
tôi đã chuyển đổi hầu hết của nó nhưng tôi không thể nhận được byte ra khỏi dữ liệu:
import Foundation
import CommonCrypto
struct MD5 {
static func get(data: Data) -> String {
var digest = [UInt8](repeating: 0, count: Int(CC_MD5_DIGEST_LENGTH))
CC_MD5(data.bytes, CC_LONG(data.count), &digest)
var digestHex = ""
for index in 0..<Int(CC_MD5_DIGEST_LENGTH) {
digestHex += String(format: "%02x", digest[index])
}
return digestHex
}
}
các CommonCrypto đã được nhập khẩu như là một module tùy chỉnh. Vấn đề là tôi đang nhận được 'bytes' is unavailable: use withUnsafeBytes instead
trên CC_MD5(data.bytes,...
Vì vậy, câu hỏi thực sự là, làm cách nào để lấy các byte ra khỏi dữ liệu và giải pháp này có hoạt động không?
Đây là [triển khai Swift thuần túy của tôi] (https://github.com/NikolaiRuhe/SwiftDigest) không cần CommonCrypto. –