我正在创建大型视频文件的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校验和,从而内存占用将最小化?
答案:但这样会创建一个内存缓冲区,对于大型视频文件并不理想。在Swift中是否有一种方法可以计算文件流的MD5校验和,以便内存占用最小化?
CC_MD5_Init
、CC_MD5_Update
和CC_MD5_Final
组合。 - rmaddy