[Objective-c] encode NSData To HexString, decode HexString To NSData

[Objective-c] encode NSData To HexString, decode HexString To NSData

convert NSData To HexString (convert to HexString)

encode NSData To HexString (encode to HexString)

 – (NSString *) encodeNSDataToHexString🙁NSData *)data {

    NSMutableString *hexString = [NSMutableString string];

    unsigned char *bytes = (unsigned char *)[data bytes];

    char temp[3];

    NSUInteger i=0;

    

    for (i=0; i<[data length]; i++){

        temp[0] = temp[1] = temp[2] =0;

        (void)sprintf(temp, “%02x”,bytes[i]);

        [hexString appendString:[NSString stringWithUTF8String:temp]];

        

    }

    return hexString;

}

convert HexString To NSData (convert from HexString)

decode HexString To NSData (decode from HexString)

– (NSData *) decodeHexStringToNSData🙁NSString *)hexString {

    unsigned long tlen = [hexString length]/2;

    

    char tbuf[tlen];

    int i,k,h,l;

    bzero(tbuf, sizeof(tbuf));

    

    for (i=0, k=0; i<tlen; i++) {

        h=[hexString characterAtIndex:k++];

        l=[hexString characterAtIndex:k++];

        h=(h >= ‘A’) ? h-‘A’+10 : h-‘0’;

        l=(l >= ‘A’) ? l-‘A’+10 : l-‘0’;

        tbuf[i]= ((h<<4)&0xf0)| (l&0x0f);

    }

    

    return [NSData dataWithBytes:tbuf length:tlen];

}