我正在爲大視頻文件創建MD5校驗和。我目前正在使用的代碼:Swift計算大文件的MD5校驗和
extension NSData {
func MD5() -> NSString {
let digestLength = Int(CC_MD5_DIGEST_LENGTH)
let md5Buffer = UnsafeMutablePointer<CUnsignedChar>.allocate(capacity: digestLength)
CC_MD5(bytes, CC_LONG(length), md5Buffer)
let output = NSMutableString(capacity: Int(CC_MD5_DIGEST_LENGTH * 2))
for i in 0..<digestLength {
output.appendFormat("%02x", md5Buffer[i])
}
return NSString(format: output)
}
}
但是,這會創建一個內存緩衝區,並且對於大型視頻文件並不理想。在Swift中有沒有一種方法可以計算讀取文件流的MD5校驗和,因此內存佔用量會很小?
考慮使用CC_MD5_Init'的'正確的組合, 'CC_MD5_Update'和'CC_MD5_Final'。 – rmaddy