OC获取文件MD5值与swift字符串MD5加密方法
来源:互联网 发布:mysql自增identity 编辑:程序博客网 时间:2024/05/16 15:07
OC:
使用前需先#import <CommonCrypto/CommonDigest.h>
//path为文件路径
+(NSString *)getImageMD5:(NSString *)path{
NSFileHandle *handle = [NSFileHandlefileHandleForReadingAtPath: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;
}
unsignedchar digest[CC_MD5_DIGEST_LENGTH];
CC_MD5_Final(digest, &md5);
NSString* s = [NSStringstringWithFormat:@"%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: hashas String)
}
}
- OC获取文件MD5值与swift字符串MD5加密方法
- MD5加密字符串与文件
- C#获取文件MD5值或者字符串MD5值方法
- MD5工具类,提供字符串MD5加密(校验)、文件MD5值获取(校验)功能
- MD5工具类,提供字符串MD5加密(校验)、文件MD5值获取(校验)功能
- 获取文件MD5,MD5加密
- C#实现字符串,文件获取Md5加密校验方法
- 加密:Java利用MessageDigest获取字符串或文件MD5详解
- 文件md5加密详细方法
- 获取文件或字符串MD5值
- Swift版MD5加密
- swift-MD5加密
- Swift MD5加密
- swift MD5 加密
- iOS swift MD5加密
- MD5 给字符串MD5加密
- C#获取文件MD5值方法
- 获取文件md5值
- 220. Contains Duplicate III
- flume-ng version 报找不到org.apache.flume.tools.GetJavaProperty
- 架构师
- redis spring 集成
- ajax的原理和运行机制
- OC获取文件MD5值与swift字符串MD5加密方法
- IIS7 请求筛选模块被配置为拒绝超过请求内容长度的请求
- 335. Self Crossing
- string 比较大小
- PAT1034有理数四则运算(20)
- 你真的了解人工智能吗?——聊聊AI的碰壁和冬天
- 应用程序无法正常启动0Xc000007b opencv+vs2010 编译通过,运行出错
- 91. Decode Ways
- 企业级账号打包发布心酸历程