数据类型转换、密码安全加密MD5方法

来源:互联网 发布:域名可以是汉字吗 编辑:程序博客网 时间:2024/05/21 23:39

数据类型转换

int转换databyte在转换int

int m = 16;

        NSData *IntToData1 = [NSDatadataWithBytes: &m length: sizeof(m)];

        

        

        Byte *byteint = (Byte *)[IntToData1bytes];

        NSLog(@"byteint:%s",byteint);

        NSMutableArray *tableint = [NSMutableArrayarray];

        for (int index =0; index <= [IntToData1 length]; index ++) {

            [tableint addObject:@(byteint[index])];

        }

        NSLog(@"tableint:%@",tableint);

//        Byte *byteintt = [&(16),0,0,0];

        

        [self heightBytesToInt:byteint];



-(int )heightBytesToInt:(Byte[]) byte

{

    int height = 0;

    for (int i =0; i < [testDatalength]; i++)

    {

        if (byte[i] >= 0)

        {

            height = height + byte[i];

        } else

        {

            height = height +256 + byte[i];

        }

        height = height * 256;

        if (byte[3] >=0)

        {

            height = height + byte[3];

        } else

        {

            height = height + 256 + byte[3];

        }

        

    }

    return height;

}

//将低位字节转换为int

//在网络上传输的是以低位字节进行的; htonl,将int转换为网络字节序的intntohl,将网络字节序的int转换回来,-(int) lBytesToInt:(Byte[]) b,将以低位传输的网络字节序bytes数组转换为htonl之后对应的值

-(int) lBytesToInt:(Byte[]) byte

{

    int height = 0;

    for (int i =0; i < [testDatalength]; i++)

    {

        if (byte[[testDatalength]-i] >= 0)

        {

            height = height + byte[[testData length]-i];

        } else

        {

            height = height + 256 + byte[[testDatalength]-i];

        }

        height = height * 256;

    }

    if (byte[0] >=0)

    {

        height = height + byte[0];

    } else {

        height = height + 256 + byte[0];

    }

    return height;

}


数据类型转换

//        ByteData

        NSData *dataqdd = [[NSDataalloc]initWithBytes:testBytelength:4];

        

        NSLog(@"dataqdd:%@",dataqdd);

        NSLog(@"subArray%@",subArray);

//        ByteTOData

//        NSData *data = [[NSData alloc]initWithBytes:(__bridge const void * _Nullable)(subArray) length:subArray.count];

        NSData *data = [[NSDataalloc]initWithBytes:testBytelength:subArray.count];

        NSLog(@"ByteTOData:%@",data);


//        DataToString

        NSString *string = [[NSStringalloc]initWithData:dataencoding:NSUTF8StringEncoding];

        NSLog(@"DataToString:%@",string);


Byte定义

    Byte byteintt = {16,0,0,0};




Data拼接在一起的实例:

NSString *da= @"大家好";

        NSData *data1 = [dadataUsingEncoding:CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000)];

        

        NSString *daya = @"请见谅";

        NSData *data2 = [dayadataUsingEncoding:CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000)];

        NSString *daya1 = @"来晚了";

        NSData *data3 = [daya1dataUsingEncoding:CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000)];

        

        NSMutableData *dataZong = [[NSMutableDataalloc]init];

        [dataZong appendData:data1];

        [dataZong appendData:data2];

        [dataZong appendData:data3];

        

        NSRange rang = NSMakeRange(0, [dataZong length]);

        

        NSData *das = [dataZong subdataWithRange:rang];

        

        NSString *stringqq = [dataweb DataWithForStringData:das];

        

        NSLog(@"%@",stringqq);



转换成GB2312编码格式

NSStringEncoding encoding =CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);



密码安全加密MD5方法

+(NSString *) md5: (NSString *) inPutText 

{

    const char *cStr = [inPutText UTF8String];

    unsigned char result[CC_MD5_DIGEST_LENGTH];

    CC_MD5(cStr, 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]

             ] lowercaseString];

}


在使用访问服务器时,若传递的值在请求服务器之前就执行的话,在请求数据结束是使用block,代理,通知等提醒可以使用该数据了(进行传值),公司项目中的判断登陆是否成功和提醒窗口信息

0 0
原创粉丝点击