iOS与PHP MD5加密

2018-07-09  本文已影响17人  yuebiubiu

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];

}

上一篇下一篇

猜你喜欢

热点阅读