关闭

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

标签: 类型转换dataMD5加密
353人阅读 评论(0) 收藏 举报
分类:

数据类型转换

int转换databyte在转换int

int m = 16;

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

        

        

        Byte *byteint = (Byte *)[IntToData1 bytes];

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

        NSMutableArray *tableint = [NSMutableArray array];

        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 < [testData length]; 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 < [testData length]; i++)

    {

        if (byte[[testData length]-i] >= 0)

        {

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

        } else

        {

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

        }

        height = height * 256;

    }

    if (byte[0] >= 0)

    {

        height = height + byte[0];

    } else {

        height = height + 256 + byte[0];

    }

    return height;

}


数据类型转换

//        ByteData

        NSData *dataqdd = [[NSData alloc]initWithBytes:testByte length:4];

        

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

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

//        ByteTOData

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

        NSData *data = [[NSData alloc]initWithBytes:testByte length:subArray.count];

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


//        DataToString

        NSString *string = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];

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


Byte定义

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




Data拼接在一起的实例:

NSString *da= @"大家好";

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

        

        NSString *daya = @"请见谅";

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

        NSString *daya1 = @"来晚了";

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

        

        NSMutableData *dataZong = [[NSMutableData alloc]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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:5290次
    • 积分:255
    • 等级:
    • 排名:千里之外
    • 原创:20篇
    • 转载:1篇
    • 译文:1篇
    • 评论:1条
    文章分类
    最新评论