使用方法 先导入头文件 #import "SHA1.h"
//SHA1测试NSString* sh1=[SHA1 getSha1String:@"123"];NSLog(@"sh1=%@ 长度:%d",sh1,[sh1 length]);NSString * sh2=[SHA1 getSha256String:@"123"];NSLog(@"sh2=%@ 长度:%d",sh2,[sh2 length]);
自建NSObject子类 命名SHA1
SHA1.h
#import@interface SHA1 : NSObject+ (NSString *)getSha1String:(NSString *)srcString;+ (NSString *)getSha256String:(NSString *)srcString;+ (NSString *)getSha384String:(NSString *)srcString;+ (NSString *)getSha512String:(NSString*)srcString;@end
SHA1.m
#import "SHA1.h"#import#import @implementation SHA1//sha1加密方式+ (NSString *)getSha1String:(NSString *)srcString{ const char *cstr = [srcString cStringUsingEncoding:NSUTF8StringEncoding]; NSData *data = [NSData dataWithBytes:cstr length:srcString.length]; uint8_t digest[CC_SHA1_DIGEST_LENGTH]; CC_SHA1(data.bytes, data.length, digest); NSMutableString* result = [NSMutableString stringWithCapacity:CC_SHA1_DIGEST_LENGTH * 2]; for(int i = 0; i < CC_SHA1_DIGEST_LENGTH; i++) { [result appendFormat:@"%02x", digest[i]]; } return result;}//sha256加密方式+ (NSString *)getSha256String:(NSString *)srcString { const char *cstr = [srcString cStringUsingEncoding:NSUTF8StringEncoding]; NSData *data = [NSData dataWithBytes:cstr length:srcString.length]; uint8_t digest[CC_SHA256_DIGEST_LENGTH]; CC_SHA1(data.bytes, data.length, digest); NSMutableString* result = [NSMutableString stringWithCapacity:CC_SHA256_DIGEST_LENGTH * 2]; for(int i = 0; i < CC_SHA256_DIGEST_LENGTH; i++) { [result appendFormat:@"%02x", digest[i]]; } return result;}//sha384加密方式+ (NSString *)getSha384String:(NSString *)srcString { const char *cstr = [srcString cStringUsingEncoding:NSUTF8StringEncoding]; NSData *data = [NSData dataWithBytes:cstr length:srcString.length]; uint8_t digest[CC_SHA384_DIGEST_LENGTH]; CC_SHA1(data.bytes, data.length, digest); NSMutableString* result = [NSMutableString stringWithCapacity:CC_SHA384_DIGEST_LENGTH * 2]; for(int i = 0; i < CC_SHA384_DIGEST_LENGTH; i++) { [result appendFormat:@"%02x", digest[i]]; } return result;}//sha512加密方式+ (NSString *)getSha512String:(NSString*)srcString { const char *cstr = [srcString cStringUsingEncoding:NSUTF8StringEncoding]; NSData *data = [NSData dataWithBytes:cstr length:srcString.length]; uint8_t digest[CC_SHA512_DIGEST_LENGTH]; CC_SHA512(data.bytes, data.length, digest); NSMutableString* result = [NSMutableString stringWithCapacity:CC_SHA512_DIGEST_LENGTH * 2]; for(int i = 0; i < CC_SHA512_DIGEST_LENGTH; i++) [result appendFormat:@"%02x", digest[i]]; return result;}@end