热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

(1)GET和POST说明——从URL分析看,GET是不安全的,POST相对更安全一点。——从服务器看,GET是安全的,POST不太安全。注意:尽管利用POST请求时用户无法直接看到数据体,但是通过f

(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 [result appendFormat:@"%02x",digest[i]];
}
return result;
}




推荐阅读
  • phpcomposer 那个中文镜像是不是凉了 ... [详细]
  • 如何查询zone下的表的信息
    本文介绍了如何通过TcaplusDB知识库查询zone下的表的信息。包括请求地址、GET请求参数说明、返回参数说明等内容。通过curl方法发起请求,并提供了请求示例。 ... [详细]
  • 修复安装win10失败并提示“磁盘布局不受UEFI固件支持”的方法
    本文介绍了修复安装win10失败并提示“磁盘布局不受UEFI固件支持”的方法。首先解释了UEFI的概念和作用,然后提供了两种解决方法。第一种方法是在bios界面中将Boot Mode设置为Legacy Support,Boot Priority设置为Legacy First,并关闭UEFI。第二种方法是使用U盘启动盘进入PE系统,运行磁盘分区工具DiskGenius,将硬盘的分区表设置为gpt格式,并留出288MB的内存。最后,通过运行界面输入命令cmd来完成设置。 ... [详细]
  • MySQL语句大全:创建、授权、查询、修改等【MySQL】的使用方法详解
    本文详细介绍了MySQL语句的使用方法,包括创建用户、授权、查询、修改等操作。通过连接MySQL数据库,可以使用命令创建用户,并指定该用户在哪个主机上可以登录。同时,还可以设置用户的登录密码。通过本文,您可以全面了解MySQL语句的使用方法。 ... [详细]
  • Monkey《大话移动——Android与iOS应用测试指南》的预购信息发布啦!
    Monkey《大话移动——Android与iOS应用测试指南》的预购信息已经发布,可以在京东和当当网进行预购。感谢几位大牛给出的书评,并呼吁大家的支持。明天京东的链接也将发布。 ... [详细]
  • PHP设置MySQL字符集的方法及使用mysqli_set_charset函数
    本文介绍了PHP设置MySQL字符集的方法,详细介绍了使用mysqli_set_charset函数来规定与数据库服务器进行数据传送时要使用的字符集。通过示例代码演示了如何设置默认客户端字符集。 ... [详细]
  • Oracle Database 10g许可授予信息及高级功能详解
    本文介绍了Oracle Database 10g许可授予信息及其中的高级功能,包括数据库优化数据包、SQL访问指导、SQL优化指导、SQL优化集和重组对象。同时提供了详细说明,指导用户在Oracle Database 10g中如何使用这些功能。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 解决VS写C#项目导入MySQL数据源报错“You have a usable connection already”问题的正确方法
    本文介绍了在VS写C#项目导入MySQL数据源时出现报错“You have a usable connection already”的问题,并给出了正确的解决方法。详细描述了问题的出现情况和报错信息,并提供了解决该问题的步骤和注意事项。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 如何在php中将mysql查询结果赋值给变量
    本文介绍了在php中将mysql查询结果赋值给变量的方法,包括从mysql表中查询count(学号)并赋值给一个变量,以及如何将sql中查询单条结果赋值给php页面的一个变量。同时还讨论了php调用mysql查询结果到变量的方法,并提供了示例代码。 ... [详细]
  • 本文介绍了在MFC下利用C++和MFC的特性动态创建窗口的方法,包括继承现有的MFC类并加以改造、插入工具栏和状态栏对象的声明等。同时还提到了窗口销毁的处理方法。本文详细介绍了实现方法并给出了相关注意事项。 ... [详细]
author-avatar
盖世猎人
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有