如何使用MD5散列字节数组中的值?

时间:2013-05-07 12:31:12

标签: ios objective-c bytearray md5 nsdata

我有一个NSData值,我通过使用以下代码

找到该值的字节
Byte *byteData = (Byte*)malloc(24); //byte array
    int len=[result length];   //find the length
    memcpy(byteData, [result bytes], len); // copy the bytes values of "result" to bytes array

    NSString *MD5Key=[[NSString alloc]initWithFormat:@"%@",[result md5]]; // find md5 values
    NSLog(@"%@",MD5Key);
    NSString *finalKey=[MD5Key substringToIndex:8];

但我需要该字节数组的MD5值(byteData)?我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

我发现了这种方法,并希望您可以根据自己的目标进行更改。

- (NSString *) md5_forString: (NSString*) sourceString
{
    const char *cStr = [sourceString UTF8String];
    unsigned char result[16];
    CC_MD5( cStr, (unsigned int) strlen(cStr), result);
    return [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]
            ];      
}