iOS SHA1加密实现方法
使用方法 先导入头文件 #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 <Foundation/Foundation.h> @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 <Foundation/Foundation.h> #import <CommonCrypto/CommonDigest.h> @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
“人生苦短,不要把时间浪费在犹豫不决上,喜欢的东西就去买,喜欢的人就去追。”