我们经常有下载文件上的需求

为了安全我们经常需要对文件进行md5校验

那我就来给大家分享一个很方便的获取文件md5值得方法。

首先需要引用系统库文件

#include <CommonCrypto/CommonDigest.h>

/** 获取文件的md5值*/

+ (NSString *)getFileMD5StrFromPath:(NSString *)path

{

NSFileManager *fileManager = [NSFileManager defaultManager];

if([fileManager fileExistsAtPath:path isDirectory:nil])

{

NSData *data = [NSData dataWithContentsOfFile:path];

unsigned char digest[CC_MD5_DIGEST_LENGTH];

CC_MD5( data.bytes, (CC_LONG)data.length, digest );

NSMutableString *output = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH * 2];

for( int i = 0; i < CC_MD5_DIGEST_LENGTH; i++ )

{

[output appendFormat:@"%02x", digest[i]];

}

return output;

}

else

{

return @"";

}

}

iOS开发之获取文件的md5值的更多相关文章

  1. swift 获取文件的Md5值

    获取文件的Md5值的方法如下 func md5File(url: URL) -> String? { let bufferSize = 1024 * 1024 do { //打开文件 let f ...

  2. JAVA 获取文件的MD5值大小以及常见的工具类

    /** * 获取文件的MD5值大小 * * @param file * 文件对象 * @return */ public static String getMD5(File file) { FileI ...

  3. 在浏览器端获取文件的MD5值

    前几天接到一个奇怪的需求,要在web页面中计算文件的md5值,还好这个项目是只需兼容现代浏览器的,不然要坑死了. 其实对文件进行md5,对于后端来说是及其简单的.比如使用Node.js,只要下面几行代 ...

  4. Android获取文件的MD5值

    package my.bag; import java.io.File; import java.io.FileInputStream; import java.math.BigInteger; im ...

  5. ios获取文件的MD5值

    一般我们在使用http或者socket上传或者下载文件的时候,经常会在完成之后经行一次MD5值得校验(尤其是在断点续传的时候用的更 多),校验MD5值是为了防止在传输的过程当中丢包或者数据包被篡改,在 ...

  6. java获取文件的md5值

    import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import ja ...

  7. java 中,如何获取文件的MD5值呢?如何比较两个文件是否完全相同呢?

    /** * Get MD5 of one file:hex string,test OK! * * @param file * @return */ public static String getF ...

  8. 获取文件的MD5值,比较两个文件是否完全相同

    代码: public class MD5Test { public static void main(String[] args) { String s1 = MD5Test.MD5Operation ...

  9. Java,如何获取文件的MD5值

    MessageDigest类封装得很不错,简单易用 不多说,直接上代码 import java.io.FileInputStream;import java.security.MessageDiges ...

随机推荐

  1. 本机Jenkins的使用

    1.启动jenkins: 命令:java -jar D:\toolspackage\jenkins\jenkins.war  打开jenkins网页:http://localhost:8080/ 2. ...

  2. How far away ? HDU - 2586

    How far away ? Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  3. C++继承(一) 三种继承方式

    继承定义 继承是使代码可以复用的重要手段,也是面向对象程序设计的核心思想之一. 继承就是不修改原有的类,直接利用原来的类的属性和方法并进行扩展.原来的类称为基类,继承的类称为派生类,他们的关系就像父子 ...

  4. Linux内核模块编程——Hello World模块

    Linux内核模块编程 编程环境 Ubuntu 16.04 LTS 什么是模块 内核模块的全称是动态可加载内核模块(Loadable Kernel Modul,KLM),可以动态载入内核,让它成为内核 ...

  5. pwn-ROP

    首先对目标文件checksec,提示NX  enabled,看看其解释 NX/DEP(堆栈不可执行) NX即No-eXecute(不可执行)的意思,NX(DEP)的基本原理是将数据所在内存页标识为不可 ...

  6. 【sql server】备份集中的数据库与现有数据库不同 解决方案

    #事故现场: 在进行sql server 数据库还原的时候,报错如下: #解决方案: _________________________________________________________ ...

  7. Linux记录-GC值

    jmap -heap pid 查看gc情况: jstat -gc PID 刷新频率 jstat -gc 12538 5000 导出堆内存dump 文件: jmap -dump:file=文件名.bin ...

  8. python 高级部分精华--那些书本不会告诉你的坑

    递归目录生成器方式, else 里的 tmp 显示获取 yield 不可缺少 , 递归算法中若要使用生成器,需要在生成器的原函数(首次调用)显式得到所有yield值 def get_file_recu ...

  9. day22 栈 , 队列 , 约束和反射

    #!/usr/bin/env python# -*- coding:utf-8 -*- # 1.请使用面向对象实现栈(后进先出)"""class Account: def ...

  10. opencv中imgshow图像显示为灰色

    1.图像数据类型是否正确 2.图像是否存在 3.在imgshow()语句下添加watkey();