iOS开发之获取文件的md5值
我们经常有下载文件上的需求
为了安全我们经常需要对文件进行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值的更多相关文章
- swift 获取文件的Md5值
获取文件的Md5值的方法如下 func md5File(url: URL) -> String? { let bufferSize = 1024 * 1024 do { //打开文件 let f ...
- JAVA 获取文件的MD5值大小以及常见的工具类
/** * 获取文件的MD5值大小 * * @param file * 文件对象 * @return */ public static String getMD5(File file) { FileI ...
- 在浏览器端获取文件的MD5值
前几天接到一个奇怪的需求,要在web页面中计算文件的md5值,还好这个项目是只需兼容现代浏览器的,不然要坑死了. 其实对文件进行md5,对于后端来说是及其简单的.比如使用Node.js,只要下面几行代 ...
- Android获取文件的MD5值
package my.bag; import java.io.File; import java.io.FileInputStream; import java.math.BigInteger; im ...
- ios获取文件的MD5值
一般我们在使用http或者socket上传或者下载文件的时候,经常会在完成之后经行一次MD5值得校验(尤其是在断点续传的时候用的更 多),校验MD5值是为了防止在传输的过程当中丢包或者数据包被篡改,在 ...
- java获取文件的md5值
import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import ja ...
- java 中,如何获取文件的MD5值呢?如何比较两个文件是否完全相同呢?
/** * Get MD5 of one file:hex string,test OK! * * @param file * @return */ public static String getF ...
- 获取文件的MD5值,比较两个文件是否完全相同
代码: public class MD5Test { public static void main(String[] args) { String s1 = MD5Test.MD5Operation ...
- Java,如何获取文件的MD5值
MessageDigest类封装得很不错,简单易用 不多说,直接上代码 import java.io.FileInputStream;import java.security.MessageDiges ...
随机推荐
- Nginx HTTP变量原理
L:72 首先如何获取url追加参数值 如: http://www.xxx.com?a=1&b=2 return '$arg_a, $arg_b'; #通过前缀 arg_a 就能获取到 参数a ...
- [leetcode] 5.Longest Palindromic Substring-2
想了很多方法 搞轴对称,算对称轴,偶数都高出了一堆0.5在那加加减减,最后发现在移轴之前可能就返回了. class Solution: def longestPalindrome(self, s: s ...
- python学习day21 面向对象(三)嵌套/特殊方法
1.嵌套 类/方法/对象都可以当做变量或嵌套到其他类型中. 函数的参数可以是任意类型. 可哈希(不可变)数据类型可以做字典的key. 类和对象可以做字典的key. 2.特殊方法(8) __init__ ...
- BZOJ5261 Rhyme--广义SAM+拓扑排序
原题链接,不是权限题 题目大意 有\(n\)个模板串,让你构造一个尽量长的串,使得这个串中任意一个长度为\(k\)的子串都是至少一个模板串的子串 题解 可以先看一下这道题 [POI2000]病毒 虽然 ...
- filter的使用
(1)什么是filter 过滤器是处于客户端与服务器资源文件之间的一道过滤网,在访问资源文件之前,通过一系列的过滤器对请求进行修改,判断等,把不符合规则的请求在中途拦截或者修改.或者对响应进行过滤.拦 ...
- 浅谈Kubernetes生产架构
注意本文,只是笔者针对Kubernetes生产环境运行的一些关于架构设计和实现方案的总结,内容很粗糙,同时也会不断完善. 首先,我们来梳理下Kubernetes生产架构,其设计适用于绝大多数环境.如下 ...
- c++对象的存储空间
1. 非静态成员 2. 静态成员变量 静态成员变量不占对象的内存空间 3. 成员函数 成员函数不占内存空间 4. 析构函数 5. 类中有虚析构函数 6. 继承空类和多重继承空类存储空间的计算 7. t ...
- Java JPS找不到正在执行的java进程 jps cannot see running java process
最近磁盘进展,把临时目录/tmp给全删了,结果发现jps的输出为空,找不到正在运行的jvm进程. 但是新建的进程没有问题,能够正常查看: [root@node-master ~]# ps -e|gre ...
- 新装的SSMS一打开就显示VS许可证过期,但VS又运行正常,解决方法。
1.出现问题如下图: 2.解决方法 打开控制面板->程序卸载->找到Microsoft Visual Studio *** Shell(****),右击-修复. 3.修复好了,然后重启电脑 ...
- Java多线程访问共享资源类及类之间关系设计
1.涉及的类 多线程类.共享资源存储类 2.类之间的关系 (1)共享资源存储类作为线程类的全局成员变量,在线程初始化时,通过setter或者构造注入(当然此处是同一个共享资源类对象),实现多个线程共享 ...