MD5 加密实现方法
MD5 的时间方法可以直接使用 <CommonCrypto/CommonCrypto.h> 这个 C 语言的库来进行实现。我们可以实现一个 NSString 的分类类扩展 NSString 的方法,上下具体代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| -(NSString*)stringToMD5:(NSString *)str{ const char *cstr = [str UTF8String]; unsigned char result[CC_MD5_DIGEST_LENGTH]; CC_MD5(cstr, (CC_LONG)strlen(cstr), result); NSMutableString *saveResult = [NSMutableString string]; for (int i = 0; i < CC_MD5_DIGEST_LENGTH; i++) { [saveResult appendFormat:@"%02x",result[i]]; }
return saveResult; }
|
SHA1 加密实现方式
SHA1 的实现方式跟 MD5 类似,也是可以直接使用<CommonCrypto/CommonCrypto.h>这个库,具体看下代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| -(NSString*)stringToSHA1:(NSString *)str{ const char *cstr = [str cStringUsingEncoding:NSUTF8StringEncoding]; NSData *data = [NSData dataWithBytes:cstr length:self.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; }
|
知识点
- 1 字节 uint8_t
- 2 字节 uint16_t
- 4 字节 uint32_t
- 8 字节 uint64_t