iOS中的BASE64编码和MD5编码使用

来源:互联网 发布:ab压力测试工具 mac 编辑:程序博客网 时间:2024/05/20 06:24

百度百科对Base64和MD5的部分介绍如下:


Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,大家可以查看RFC2045~RFC2049,上面有MIME的详细规范。Base64编码可用于在HTTP环境下传递较长的标识信息。例如,在Java Persistence系统Hibernate中,就采用了Base64来将一个较长的唯一标识符(一般为128-bit的UUID)编码为一个字符串,用作HTTP表单和HTTP GET URL中的参数。在其他应用程序中,也常常需要把二进制数据编码为适合放在URL(包括隐藏表单域)中的形式。此时,采用Base64编码具有不可读性,即所编码的数据不会被人用肉眼所直接看到。

MD5算法具有以下特点:
1、压缩性:任意长度的数据,算出的MD5值长度都是固定的。
2、容易计算:从原数据计算出MD5值很容易。
3、抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。
4、弱抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。
5、强抗碰撞:想找到两个不同的数据,使它们具有相同的MD5值,是非常困难的。

简而言之,Base64和MD5都是用于在网络传输中对信息的编码传输。其中,Base64有相应的解码方法,MD5则没有。MD5相对于Base64更安全一些。由于MD5的编码过程不可逆,即不能反编码,因此它适合于密码类信息的存储。

在OC语言开发过程中,我们也会用到这两种编码方式,下面做一些简单的介绍,供初学者参考:


一、准备工作:

需要从网络中获取到下面这几个.h和.m文件:

1.  Base64.h和Base64.m

2. NSString+MD5.h和NSString+MD5.m

3. NSString+Encryption.h

找不到的朋友可以从附件中获取哈。


二、关于
NSString

的编码和解码:

    NSString *originalString = @"This is a original string";

//使用BASE64对字符串进行编码和解码    NSString *encodeString = [originalString base64EncodedString];//编码    NSString *decodeString = [encodeString base64DecodedString];//解码    NSLog(@"\n\n1.------BASE64——编码:%@   解码:%@\n\n",encodeString,decodeString);    //使用MD5对字符串进行编码(MD5只能编码,不能解码,较安全)    NSString *md5String = [originalString MD5];    NSLog(@"\n\n2.------MD5——编码:%@\n\n",md5String);


三、关于NSData的编码和解码:


    //创建一个经过BASE64编码过的字符串    NSString *encodedString = [@"This is a data from a string" base64EncodedString];    //将编码的字符串(encodedString)解码成NSData对象    NSData *data1 = [NSData dataWithBase64EncodedString:encodedString];    NSData *data2 = [encodedString base64DecodedData];    //说明:data1和data2是一样的。        //将解码的Data转为字符串输出    NSString *getString1 = [[NSString alloc] initWithData:data1 encoding:NSUTF8StringEncoding];    NSString *getString2 = [[NSString alloc] initWithData:data2 encoding:NSUTF8StringEncoding];    //输出结果    NSLog(@"result = \n\n1.---%@\n2.---%@",getString1,getString2);

0 0
原创粉丝点击