Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/102.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS:加密要发送到API的登录密码_Ios_Encryption - Fatal编程技术网

iOS:加密要发送到API的登录密码

iOS:加密要发送到API的登录密码,ios,encryption,Ios,Encryption,在发送到WebAPI之前,我需要加密NSString。 这方面的最佳实践是什么?我一直在看不同的文章,但没有找到我要找的。 在写这篇文章的时候,整个hash/salt和date似乎是最好的方法。 有人知道如何在iOS中做到这一点吗? 那么,我是否将其作为varchar(50)存储在数据库中? 对于后续登录,只需进行文本比较? 谢谢大家 使用HTTPS加密和验证与服务器的连接。这可以抵消窃听和MITM攻击。确保在客户端验证服务器证书 在服务器上,使用随机生成的salt散列密码 将散列和盐存储在数据

在发送到WebAPI之前,我需要加密NSString。 这方面的最佳实践是什么?我一直在看不同的文章,但没有找到我要找的。 在写这篇文章的时候,整个hash/salt和date似乎是最好的方法。 有人知道如何在iOS中做到这一点吗? 那么,我是否将其作为varchar(50)存储在数据库中? 对于后续登录,只需进行文本比较? 谢谢大家

  • 使用HTTPS加密和验证与服务器的连接。这可以抵消窃听和MITM攻击。确保在客户端验证服务器证书

  • 在服务器上,使用随机生成的salt散列密码

  • 将散列和盐存储在数据库中。是的,您可以使用类似
    text
    varchar(50)
    的东西来存储散列和盐


  • 这在之前的几个问题中已经讨论过了:请参见

    我宁愿在发送到服务器之前在iOS中对其进行哈希运算,而只是将其存储在服务器端。服务器可以比较散列的pw登录尝试。碰巧在iOS中有一些加密的示例代码?@Beau:如果你这样做,数据库泄露将意味着所有用户帐户都会立即被泄露,而攻击者没有采取任何行动。这毫无意义……怎么会这样?如果在发送之前对其进行哈希处理,然后对其进行哈希存储。。攻击者如何获得pw的“无功”?它已经被散列了,所以被散列的服务器端或客户端的存储方式是相同的…@Beau:因为任何人都可以更改客户端代码。假设您的密码是“pass123”,其哈希值是“DEADBEEF”。如果服务器受损,我可以通过发送DEADBEEF以您的身份登录。我不知道密码并不重要,因为我知道散列,在这个方案中,我只需要知道散列,而不是密码。或者,换句话说,在这个方案中,散列就是密码,您将它存储在纯文本中而不进行散列。@Beau:加密DB字段是有风险的。使用适当的KDF和随机salt在服务器端散列密码,可以更好地降低这种特殊风险。见: