+(NSString*) md5:(NSString*) str
{
const char *cStr = [str UTF8String];
unsigned char result[CC_MD5_DIGEST_LENGTH];
CC_MD5( cStr, strlen(cStr), result );
NSMutableString *hash = [NSMutableString string];
for(int i=0;i<CC_MD5_DIGEST_LENGTH;i++)
{
[hash appendFormat:@"%02X",result[i]];
}
return [hash lowercaseString];
}
#define CHUNK_SIZE 1024
+(NSString *)file_md5:(NSString*) path
{
NSFileHandle* handle = [NSFileHandle fileHandleForReadingAtPath:path];
if(handle == nil)
return nil;
CC_MD5_CTX md5_ctx;
CC_MD5_Init(&md5_ctx);
NSData* filedata;
do {
filedata = [handle readDataOfLength:CHUNK_SIZE];
CC_MD5_Update(&md5_ctx, [filedata bytes], [filedata length]);
}
while([filedata length]);
unsigned char result[CC_MD5_DIGEST_LENGTH];
CC_MD5_Final(result, &md5_ctx);
[handle closeFile];
NSMutableString *hash = [NSMutableString string];
for(int i=0;i<CC_MD5_DIGEST_LENGTH;i++)
{
[hash appendFormat:@"%02x",result[i]];
}
return [hash lowercaseString];
}
IOS 开发中验证字符串/文件的MD5
最新推荐文章于 2021-05-26 22:02:41 发布
本文介绍了一种使用Objective-C实现的MD5加密方法,包括字符串加密和文件加密的具体实现。通过该方法可以生成任意字符串或文件的MD5摘要,适用于数据校验等场景。
1万+

被折叠的 条评论
为什么被折叠?



