//導入頭文件 #import <CommonCrypto/CommonCrypto.h> @implementation WXUtil +(NSString *)md5:(NSString *)str{ const char *CStr = str.UTF8String; /** * @param data#> 要加密的C語言字符串 * @param len#> C語言字符串的長度 * @param md#> 生成的16個16進制字符的數組的首地址 */ //聲明一個字符數組 可存放16個字符 unsigned char result[CC_MD5_DIGEST_LENGTH]; CC_MD5(CStr, (CC_LONG)strlen(CStr), result); //遍歷該C語言數組 將其中的16個字符串拼接起來,形成OC字符串 NSMutableString *string = [NSMutableString string]; for (int i = 0; i < CC_MD5_DIGEST_LENGTH; i++) { [string appendFormat:@"%02X",result[i]]; } return string; } +(NSString *)sha1:(NSString *)str{ const char *cstr = [str cStringUsingEncoding:NSUTF8StringEncoding]; NSData *data = [NSData dataWithBytes:cstr length:str.length]; uint8_t digest[CC_SHA1_DIGEST_LENGTH]; CC_SHA1(data.bytes, (unsigned int)data.length, digest); NSMutableString *output = [NSMutableString stringWithCapacity:CC_SHA1_DIGEST_LENGTH*2]; for (int i = 0; i< CC_SHA1_DIGEST_LENGTH; i++) { [output appendFormat:@"%02x",digest[i]]; } return output; }