您的位置:首页 > 移动开发 > IOS开发

【iOS开发-93】GET和POST请求的实现步骤,MD5加密方法

2014-12-18 17:39 549 查看
(1)GET和POST说明

——从URL分析看,GET是不安全的,POST相对更安全一点。

——从服务器看,GET是安全的,POST不太安全。

注意:尽管利用POST请求时用户无法直接看到数据体,但是通过firebug等插件,还是可以截取POST请求的数据体的,所以POST也并非很安全。

解决办法:就是加密。(当用户点击注册或者登陆提交之后,所有数据都应该是加密后的数据,这样即使被截取,破译难度也会增加)

(2)所有网络请求统一使用异步请求,以防阻塞,即使用:

NSURLConnection sendAsynchronnousRequest


(3)GET和POST请求步骤

GET

——NSURL,一般是NSURL *url=[NSURL URLWithString:[NSString stringWithFormat:@"http://localhost:/login.php?username=%@&password=%@",self.u,self,p]];

——NSURLRequest

——NSURLConnection,在block中可以把data数据转换成str格式,输出查看结果。

POST

——NSURL,这里的URL不带参数,一般是http://localhost/login.php

——NSMutableRequest *request,这里的可变request时关键。

——设置方法,默认是GET,request.HTTPMethod=@"POST"

——设置数据体,request.HTTPBody=[str dataUsingEncoding...]这里的HTTPBody是data格式,这里的str可以用firefox截取查看post内容从而来模拟

(4)一般不使用NSURLConnection的代理方法delegate,因为这个技术比较古老,部分功能可以被发送异步连接代替。

(5)密码原则

——不要在本地存储用户安全相关的信息

——数据传输时,都不能明文,也最好不要传输于用户信息安全相关的数据

(6)md5加密,是不可逆的。但是相同的数据加密后的md5码是相同的,所以可以借助http://www.cmd5.com这一类网站,对一些简单地密码进行破解。

(7)利用公钥和私钥的原理进行md5加密,即,获取到用户的信息后(比如是一个字符串str1),然后和公司自己的私钥(一个字符串str2),拼接成一个新的字符串str3,再对这个str3进行md5加密,因为这个私钥str2可能极其复杂,所以尽管用户的密码很简单,但是想要对md5进行破译则几乎难度很大(当然,如果用户密码很简单,那么直接猜估计都会比破译省力的多)。

加密的代码可以在网上搜索:(1)http://blog.csdn.net/z251257144/article/details/8291992;(2)http://www.cocoachina.com/bbs/read.php?tid=97570

大概是:

-(NSString *)MD5{
const char *cStr=[self UTF8String];
unsigned char digest[CC_MD5_DIGEST_LENGTH];

CC_MD5(cStr, strlen(cStr), digest);

NSMutableString *result=[NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH*2];
for (int i=0; i<CC_MD5_DIGEST_LENGTH; i++) {
[result appendFormat:@"%02x",digest[i]];
}
return result;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: