Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.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
Android 我应该在将用户密码发送到服务器之前对其进行加密吗?_Android_Security - Fatal编程技术网

Android 我应该在将用户密码发送到服务器之前对其进行加密吗?

Android 我应该在将用户密码发送到服务器之前对其进行加密吗?,android,security,Android,Security,我想通过允许用户创建用户名和密码来验证用户。因为我只找到关于它的旧帖子,所以我创建了这个 我应该在发送到服务器之前加密密码吗?如果是,我应该怎么做?如果不是,我应该在向服务器发送POST请求时使用一些特定的配置吗 我是否应该使用任何可靠的第三方api 我知道谷歌在这方面有一个androidx API,但它仍然是alpha。如果您使用HTTPS协议与服务器通信,数据在发送之前已经加密,无论如何,我建议您使用密码执行额外的加密 PS更多信息请参见此问题如果您使用HTTPS协议与服务器通信,数据在发送

我想通过允许用户创建用户名和密码来验证用户。因为我只找到关于它的旧帖子,所以我创建了这个

我应该在发送到服务器之前加密密码吗?如果是,我应该怎么做?如果不是,我应该在向服务器发送POST请求时使用一些特定的配置吗

我是否应该使用任何可靠的第三方api


我知道谷歌在这方面有一个androidx API,但它仍然是alpha。

如果您使用HTTPS协议与服务器通信,数据在发送之前已经加密,无论如何,我建议您使用密码执行额外的加密


PS更多信息请参见此问题

如果您使用HTTPS协议与服务器通信,数据在发送之前已经加密,无论如何,我建议您使用密码执行额外的加密


PS,对于更多的< /P> < P>,你可以做一个基本的混淆,比如Base64或者类似的东西,正如马珂所提到的,HTTPS已经保证了通道,信息不会被中间人看到。


您可以添加一个安全验证来代替加密,以证明HTTPS证书是可信的,因此也禁止使用代理,如Charles Proxy。

您可以进行基本的模糊处理,如Base64或类似的处理,如Marco所述,HTTPS已经保证了频道,而中间的人看不到信息。


您可以添加一个安全验证来代替加密,以确认HTTPS证书是可信的,因此也禁止使用代理,如Charles Proxy。

加密假定加密密钥需要安全分发。由于密码或其衍生物需要存储在服务器端,以便后续验证,我建议至少在注册用户名/密码时以明文形式发送密码。当然,假设使用HTTPS,强制执行安全协议和主机名验证。这样做的好处是,您不会向服务器API中的特定算法添加隐式依赖项。相反,服务器应用程序可以在数据库中存储密码或派生项时将其作为内部细节隐藏。这使得API的发展不那么痛苦

通常建议使用证书固定,即对服务器证书客户端进行硬编码,但这可能过于工程化,具体取决于您的用例,因为这需要证书生命周期管理


所有这些都说了。您可能会从使用第三方服务(如AWS cognito)进行身份验证中获益,至少在短期内是如此。通过这种方式,您可以在创建帐户、防止登录滥用、密码恢复等时更轻松地实施双因素身份验证。加密采用需要安全分发的加密密钥。由于密码或其衍生物需要存储在服务器端,以便后续验证,我建议至少在注册用户名/密码时以明文形式发送密码。当然,假设使用HTTPS,强制执行安全协议和主机名验证。这样做的好处是,您不会向服务器API中的特定算法添加隐式依赖项。相反,服务器应用程序可以在数据库中存储密码或派生项时将其作为内部细节隐藏。这使得API的发展不那么痛苦

通常建议使用证书固定,即对服务器证书客户端进行硬编码,但这可能过于工程化,具体取决于您的用例,因为这需要证书生命周期管理


所有这些都说了。您可能会从使用第三方服务(如AWS cognito)进行身份验证中获益,至少在短期内是如此。通过这种方式,您可以在创建帐户、防止登录滥用、密码恢复等时更轻松地实施双因素身份验证

我将此项标记为响应,因为发布的链接中有一个非常有用的答案。其他两个答案都很好,也很相似。我把这一个标记为Response,只是因为在发布的链接中有一个非常有用的答案。另外两个答案都很好,也很相似。