iOS sha256的异或运算

- (NSString*)QQJXPinxCreator:(NSString*)sha256

{

    NSString* pan = [sha256substringToIndex:sha256.length/2];

    NSString* pinv = [sha256substringFromIndex:sha256.length/2];

    if(pan.length!= pinv.length)

    {

        return @"生成的sha256字符串位数不是偶数!";

    }

    NSData * Data = [self convertHexStrToData:pan];

    Byte* panByte = (Byte*)[Databytes];

    NSData* panData = [selfconvertHexStrToData:pinv];

    Byte* pinvByte = (Byte*)[panDatabytes];

    BytenewData[Data.length];

    for(inti =0; i < Data.length; i++)

    {

        newData[i] = panByte[i]^pinvByte[i];

    }

    NSData* temdatas = [NSDatadataWithBytes:newDatalength:Data.length];

    NSString* temp = [selfconvertDataToHexStr:temdatas];

    CXTLog(@"tyon = %@",temp);

    returntemp;

}

- (NSData*)convertHexStrToData:(NSString*)str

{

    if(!str || [strlength] ==0)

    {

        returnnil;

    }

    NSMutableData *hexData = [[NSMutableData alloc]initWithCapacity:[str length]*2];

    NSRangerange;

    if([strlength] %2==0)

    {

        range =NSMakeRange(0,2);

    }else

    {

        range =NSMakeRange(0,1);

    }

    for(NSIntegeri = range.location; i < [strlength]; i +=2)

    {

        unsignedintanInt;

        NSString*hexCharStr = [strsubstringWithRange:range];

        NSScanner*scanner = [[NSScanneralloc]initWithString:hexCharStr];

        [scannerscanHexInt:&anInt];

        NSData *entity = [[NSData alloc]initWithBytes:&anInt length:1];

        [hexDataappendData:entity];

        range.location+= range.length;

        range.length=2;

    }

    returnhexData;

}

- (NSString*)convertDataToHexStr:(NSData*)data

{

    if(!data || [datalength] ==0)

    {

        return@"";

    }

    NSMutableString *string = [[NSMutableString alloc]initWithCapacity:[data length]/2];

    [dataenumerateByteRangesUsingBlock:^(constvoid*bytes,NSRangebyteRange,BOOL*stop)

     {

         unsignedchar*dataBytes = (unsigned  char*)bytes;

         for(NSIntegeri =0; i < byteRange.length; i++)

         {

             NSString*hexStr = [NSStringstringWithFormat:@"%x", (dataBytes[i]) &0xff];

             if([hexStrlength] ==2)

             {

                 [stringappendString:hexStr];

             }else

             {

                 [stringappendFormat:@"0%@", hexStr];

             }

         }

     }];

    returnstring;

}

你可能感兴趣的:(iOS sha256的异或运算)