iOS和PHP通讯的时候,需要使用统一的编码和加密方式,下面有2种不同的写法
1,以下加密除了中文汉字外的其他字符是一致的,中文的话,由于编码方式导致字符长度不同,所以在iOS 和PHP得到的结果不一致
- (NSString*)do32MD5WithStr:(NSString*)str{
constchar* cStr = [strUTF8String];
unsigned char digest[CC_MD5_DIGEST_LENGTH];
CC_MD5( cStr, (unsignedint)str.length, digest );
NSMutableString *result = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH * 2];
for(inti =0; i
[resultappendFormat:@"%02x", digest[i]];
returnresult;
}
2,以下加密方式,无论是中文汉字还是其他字符,在iOS和PHP两端得到的结果是一样的
-(NSString*)do32MD5WithStr:(NSString*)str{
constchar*cStr = [strUTF8String];
unsigned char result[CC_MD5_DIGEST_LENGTH];
CC_MD5(cStr,strlen(cStr), result);
NSString *resultStr = [NSString stringWithFormat:@"%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X",
result[0], result[1], result[2], result[3],
result[4], result[5], result[6], result[7],
result[8], result[9], result[10], result[11],
result[12], result[13], result[14], result[15]
];
return[resultStrlowercaseString];
}
网友评论