美文网首页
swift MD5文件

swift MD5文件

作者: 莫寂岚 | 来源:发表于2018-12-10 15:47 被阅读7次

    MD5有啥用?一般而言,用来校验。

    所以当上传文件的时候,假如说,我们恶意的将同样的文件上传100次,1000次,对服务器而言,就是一种极大的资源浪费。
    所以每次上传的时候,校验一下文件的MD5值,可以做到防止重复上传的问题。

    Swift文件,MD5:

      import CommonCrypto
    
       func md5() {
            let bufferSize = 1024*1024
            let imageUrl = Bundle.main.path(forResource: "学位认证报告", ofType: "pdf")
            do {
                let file = try FileHandle.init(forReadingFrom: URL.init(fileURLWithPath: imageUrl!))
                defer {
                    file.closeFile()
                }
    
                var context = CC_MD5_CTX.init()
                CC_MD5_Init(&context)
                while case let data = file.readData(ofLength: bufferSize), data.count > 0 {
                    data.withUnsafeBytes { (poiner) -> Void in
                        _ = CC_MD5_Update(&context, poiner, CC_LONG(data.count))
                    }
                }
    
                // 计算MD5摘要
                var digest = Data(count: Int(CC_MD5_DIGEST_LENGTH))
                digest.withUnsafeMutableBytes { (pointer) -> Void in
                    _ = CC_MD5_Final(pointer, &context)
                }
                let result = digest.map { (byte) -> String in
                    String.init(format: "%02hhx", byte)
                }.joined()
                print("result: \(result)")
            } catch {
                print("计算出错") // 哪里try了,就是哪里出错了
            }
        }
    

    相关文章

      网友评论

          本文标题:swift MD5文件

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