【Https】iOS 端两种Https数据传输加密方法

发布时间:2020-05-24 18:32:40 作者:卓行天下
来源:网络 阅读:907

http数据传输传输的是明文,未进行加密的数据链可以在网络中设置代理进行截取,尽管会有token等验证手段,但数据被监听还是不可避免的,这点使用网络抓包软件就能做到。

而对于https数据加密后传输的数据,抓到的数据包都只是乱码,安全性大幅提高,也是当前大势所趋。

下面就介绍一下使用ASIHttpRequest 和 AFNetworking两种三方库进行https加密的方式。

原料: 1、相应的ASIHttpRequest、AFNetworking配置完成 2、相应的证书文件

一、ASIHttpRequest

` / 测试https接口 /

ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:httpsUrl];    

SecIdentityRef identity = NULL;

SecTrustRef trust = NULL;NSData *cerData = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"证书文件名" ofType:@"文件类型"]];

[[self class] extractIdentity:&identity andTrust:&trust fromPKCS12Data:cerData];

request = [ASIHTTPRequest requestWithURL:httpsUrl];

[request setClientCertificateIdentity:identity];

/ 是否验证服务器端证书,如果此项为yes那么服务器端证书必须为合法的证书机构颁发的,而不能是自己用openssl 或java生成的证书 /

[request setValidatesSecureCertificate:NO];

[request setRequestMethod:@"GET"];

[request startSynchronous];NSError *error = [request error];if (!error) {    NSString *response = [request responseString];    NSLog(@"response is : %@",response);    NSLog(@"获取数据成功");

}

else {

    NSLog(@"Failed to save to data store: %@", [error localizedDescription]);    NSLog(@"%@",[error userInfo]);

}

}

/ 提取证书 /

} ` 二、AFNetworking

/ 测试https接口 /

{

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];

manager.responseSerializer = [AFHTTPResponseSerializer serializer];/*
 Https SSL 验证。
 */[manager setSecurityPolicy:[self SetSecurityPolicy]];

[manager GET:@"https://www.demo.com/method.php" parameters:nil progress:^(NSProgress * _Nonnull downloadProgress)

 {     NSLog(@"%@",downloadProgress);

 }

     success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {         NSData * responsedata=(NSData *)responseObject;         NSString * response =[[NSString alloc]initWithData: responsedata encoding:NSUTF8StringEncoding];         NSLog(@"%@", response);         NSLog(@"获取数据成功");

     }

     failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull   error) {         NSLog(@"%@",error);

     }];

}

/ 设置安全证书 /

}


推荐阅读:
  1. 关于https握手的介绍
  2. HTTPS对网站打开速度有影响吗

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

接口 安全性 数据包

上一篇:redis 代理工具Predixy安装部署

下一篇:【读书笔记】手动生成段顾问建议

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》