美文网首页MacDeveloper
如何计算本地文件的md5值?

如何计算本地文件的md5值?

作者: _我和你一样 | 来源:发表于2020-01-02 16:08 被阅读0次

如何计算本地文件的md5值?

计算文件的 md5 值,读取数据字节,然后计算 md5。逻辑上是这样的,但是一次性把文件读入,文件小还可以,文件大是不太现实的,而本地文件通常都有相当的大小。所以要分批读入并计算。

以下是使用分批读入计算的。

其中关于 md5 的计算,使用了 CryptoSwift 第三方库

func localFileMd5(file:URL) -> String {
        var result = ""
        let bufferSize = 1024 * 1024
        do {
            var digest = MD5()
            let file = try FileHandle(forReadingFrom: file)
            defer {
                file.closeFile()
            }
            while autoreleasepool(invoking: {
                let data = file.readData(ofLength: bufferSize)
                do {
                  _ =  try digest.update(withBytes: data.bytes)
                } catch {
                    AppLog.error(error)
                    return false
                }
                return data.count > 0
            }) {}
            let res = try digest.finish()
            result = res.toHexString()
        } catch {
            AppLog.error(error)
        }
        AppLog.debug("local md5:\(result)")
        return result
    }

相关文章

网友评论

    本文标题:如何计算本地文件的md5值?

    本文链接:https://www.haomeiwen.com/subject/neueuctx.html