美文网首页
swift 文件 MD5

swift 文件 MD5

作者: QD_Fluent | 来源:发表于2018-10-11 11:01 被阅读0次

    swift 文件 MD5

    import CommonCrypto

    /*

     *  文件的MD5

     */

    func md5File(path:String) ->String? {

        let url =URL.init(fileURLWithPath: path)

        let bufferSize =1024*1024

        do{

            //打开文件

            let file =tryFileHandle(forReadingFrom: url)

            defer{

                file.closeFile()

            }

            //初始化内容

            var context =CC_MD5_CTX()

            CC_MD5_Init(&context)

            //读取文件信息

            while case let data = file.readData(ofLength: bufferSize), data.count>0{

                data.withUnsafeBytes{

                    _=CC_MD5_Update(&context, $0,CC_LONG(data.count))

                }

            }

            //计算Md5摘要

            var digest =Data(count:Int(CC_MD5_DIGEST_LENGTH))

            digest.withUnsafeMutableBytes {

                _=CC_MD5_Final($0, &context)

            }

            return digest.map{String(format:"%02hhx", $0) }.joined()

        }catch{

            print("Cannot open file:", error.localizedDescription)

            return nil

        }

    }

    相关文章

      网友评论

          本文标题:swift 文件 MD5

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