iPhone身份验证密码加密

时间:2011-07-10 16:10:54

标签: iphone encryption

处理密码加密的最佳方法是什么?

我正在尝试通过NSURLRequest发送密码。密码在服务器上的数据库级别加密。

  1. 我应该以明文形式发送密码,然后当它到达服务器时,加密密码,然后检查此密码是否与数据库中的加密密码相匹配。

  2. 我应该首先加密密码,然后检查这个加密的密码是否与数据库中的加密密码相匹配?

3 个答案:

答案 0 :(得分:2)

您永远不应该通过不安全的普通HTTP连接发送密码。

如j0k所述,使用TLS(SSL的后继版)将是您的方法,如果可能的话,您应该尽可能使用它,而不是发明自己的方案。如果您只是使用单向TLS / SSL(即只有服务器验证自身,客户端保持匿名),那么您将省去在客户端处理对称加密密钥的麻烦。

如果您在服务器上正确设置了TLS,那么您可以简单地传输未加密的用户凭据。作为协议的TLS处理传输级别的加密,因此您作为开发人员不再需要关心它。

您应该做的另一件事是不以加密形式存储密码,而只是在数据库中存储它们的salted哈希值(SHA-1或足够的东西)。这样您就不会有损害用户密码的危险。

答案 1 :(得分:0)

鉴于你是如何做到的,你使用哪种方法并不重要。比较方法完全相同。如果您只是将字符串与字符串进行比较,则“foo”与其加密对应字符串之间没有区别,例如“74 $#4uc”。

如果您正在寻找安全性,那么您可以做一些事情,但它们都需要工作。最简单的可能是使用SSL发布到URL,如果这是您的选项。

答案 2 :(得分:0)

我会在本地加密密码,然后将其发送到服务器。出于安全原因,您总是希望限制传递明文密码。