【发布时间】:2017-08-13 14:14:23
【问题描述】:
我正在为大型视频文件创建 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的正确组合。
标签: ios swift md5 checksum commoncrypto