Iphone 通过HTTP发送/接收受保护的数据

Iphone 通过HTTP发送/接收受保护的数据,iphone,Iphone,这是一个相当基本的问题。比如说,我有一个iPhone/iPad应用程序,在某个时候,它让用户可以选择登录。用户名/pw存储在服务器的数据库中 与服务器通信以检查用户名/密码是否正确的最佳方式是什么。如何通过HTTP安全地发送和接收这些请求(而不发送普通pw)?我应该使用什么加密/解密(应用程序内和服务器端)?只需使用SSL(即https)。无论你做什么,都不要使用你自己的密码 只需使用SSL(即https)。无论你做什么,都不要使用你自己的密码 如果您不想发送密码纯文本, 您应该使用md5哈希(

这是一个相当基本的问题。比如说,我有一个iPhone/iPad应用程序,在某个时候,它让用户可以选择登录。用户名/pw存储在服务器的数据库中


与服务器通信以检查用户名/密码是否正确的最佳方式是什么。如何通过HTTP安全地发送和接收这些请求(而不发送普通pw)?我应该使用什么加密/解密(应用程序内和服务器端)?

只需使用SSL(即https)。无论你做什么,都不要使用你自己的密码

只需使用SSL(即https)。无论你做什么,都不要使用你自己的密码

如果您不想发送密码纯文本, 您应该使用md5哈希(iphone中有内置函数) 使用md5函数加密密码并将其发送到服务器

如果服务器DB的密码是纯文本的,那么他也可以进行md5哈希 并将其与他从客户处收到的信息进行比较


您也可以使用此方法加密您的用户名。

如果您不想发送密码纯文本, 您应该使用md5哈希(iphone中有内置函数) 使用md5函数加密密码并将其发送到服务器

如果服务器DB的密码是纯文本的,那么他也可以进行md5哈希 并将其与他从客户处收到的信息进行比较


您也可以使用此方法加密您的用户名。

OK谢谢您指出这一点。我对SSL/HTTPS不是很熟悉。我如何实现这样的东西?工作量大吗?你知道一些应该让我开始的文章吗?如果你只是从
http://whatever
https://whatever
那么它应该像魔术一样工作……但iPhone或iPad上的情况可能会有所不同。你需要设置一个服务器证书-查看你的web服务器文档了解如何设置。根据我的经验,要在iPad上使用SSL,你需要一个证书,而不能使用自行颁发的证书。当我们尝试自行发布时,它断开了连接。我的主机在他们的FAQ页面上这样说SSL:“通过输入URL(如Web空间的内容)进行编码,然后传输(代替“YourStratomain.eu”使用您自己的域名)。”。我尝试过这个,建立了一个连接(在iPhone应用程序中),它成功了(我发送了一些数据并得到了回复)。现在我可以假设我正确使用了SSL(本例中为https)吗?只要它有
https://
前缀而不是
http://
,那么您就可以了。顺便说一下,我建议您仔细阅读如何安全地存储密码(salt+迭代散列)。在stackoverflow上有很多关于它的问题,或者阅读一些关于如何正确操作的好的概述。谢谢你指出这一点。我对SSL/HTTPS不是很熟悉。我如何实现这样的东西?工作量大吗?你知道一些应该让我开始的文章吗?如果你只是从
http://whatever
https://whatever
那么它应该像魔术一样工作……但iPhone或iPad上的情况可能会有所不同。你需要设置一个服务器证书-查看你的web服务器文档了解如何设置。根据我的经验,要在iPad上使用SSL,你需要一个证书,而不能使用自行颁发的证书。当我们尝试自行发布时,它断开了连接。我的主机在他们的FAQ页面上这样说SSL:“通过输入URL(如Web空间的内容)进行编码,然后传输(代替“YourStratomain.eu”使用您自己的域名)。”。我尝试过这个,建立了一个连接(在iPhone应用程序中),它成功了(我发送了一些数据并得到了回复)。现在我可以假设我正确使用了SSL(本例中为https)吗?只要它有
https://
前缀而不是
http://
,那么您就可以了。顺便说一下,我建议您仔细阅读如何安全地存储密码(salt+迭代散列)。在stackoverflow上有很多关于它的问题,或者阅读一些关于如何正确操作的概述。这是错误的,原因很多。MD5被破坏;绝不以明文形式存储密码;散列不是加密;“你是”应该是“你的”。这是错误的,原因很多。MD5被破坏;绝不以明文形式存储密码;散列不是加密;“你是”应该是“你的”。