OC:
使用前需先#import<CommonCrypto/CommonDigest.h>
//path为文件路径
+(Nsstring *)getimageMD5:(Nsstring *)path{
NSfileHandle *handle = [NSfileHandle fileHandleForReadingAtPath:path];
if( handle== nil ) {
return nil;
}
CC_MD5_CTX md5;
CC_MD5_Init(&md5);
BOol done = NO;
while(!done)
{
NSData* fileData = [handle readDataOfLength: 256 ];
CC_MD5_Update(&md5,[fileData bytes],[fileData length]);
if( [fileData length] == 0 ) done = YES;
}
unsigned char digest[CC_MD5_DIGEST_LENGTH];
CC_MD5_Final(digest,&md5);
Nsstring* s = [Nsstring stringWithFormat: @"%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",
digest[0],digest[1],
digest[2],digest[3],
digest[4],digest[5],
digest[6],digest[7],
digest[8],digest[9],
digest[10],digest[11],
digest[12],digest[13],
digest[14],digest[15]];
return s;
}
swift:
使用方法,1,在header文件导入<CommonCrypto/CommonDigest.h>
2,在任意swift类中添加下边的方法。
3,调用var fIElad :Nsstring = 字符串.md5()
//字符串MD5加密
extension String{
func md5() ->String!{
let str = self.cStringUsingEnCoding(NSUTF8StringEnCoding)
let strLen = CUnsignedInt(self.lengthOfBytesUsingEnCoding(NSUTF8StringEnCoding))
let digestLen = Int(CC_MD5_DIGEST_LENGTH)
let result = UnsafeMutablePointer<CUnsignedChar>.alloc(digestLen)
CC_MD5(str!,strLen,result)
var hash = NSMutableString()
for i in 0 ..< digestLen {
hash.appendFormat("%02x",result[i])
}
result.destroy()
return String(format: hash as String)
}
}
总结以上是内存溢出为你收集整理的OC获取文件MD5值与swift字符串MD5加密方法全部内容,希望文章能够帮你解决OC获取文件MD5值与swift字符串MD5加密方法所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)