Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.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
Java 在android上本地安全地存储密钥或密码_Java_Android_Security_Keystore_Password Encryption - Fatal编程技术网

Java 在android上本地安全地存储密钥或密码

Java 在android上本地安全地存储密钥或密码,java,android,security,keystore,password-encryption,Java,Android,Security,Keystore,Password Encryption,我正在制作一个android应用程序,目前,我的服务器用户名和密码在代码中作为常量写入(这不是很安全)。我已经在网上进行了研究,但我真的找不到能够完全保护用户密码或至少防止黑客攻击的东西。有谁能帮助我在安卓系统上安全地本地存储密码吗?谢谢 您的问题似乎实际上是“我可以将服务器访问权限限制为仅限于我的应用程序吗?”。这是不可能的。一旦客户机(如用户设备)上存在应用程序或文件,无论是否经过您的授权,都无法确保该客户机访问该应用程序或文件中的任何内容 如果设备可以读取它,那么设备就可以读取它——不管它

我正在制作一个android应用程序,目前,我的服务器用户名和密码在代码中作为常量写入(这不是很安全)。我已经在网上进行了研究,但我真的找不到能够完全保护用户密码或至少防止黑客攻击的东西。有谁能帮助我在安卓系统上安全地本地存储密码吗?谢谢

您的问题似乎实际上是“我可以将服务器访问权限限制为仅限于我的应用程序吗?”。这是不可能的。一旦客户机(如用户设备)上存在应用程序或文件,无论是否经过您的授权,都无法确保该客户机访问该应用程序或文件中的任何内容

如果设备可以读取它,那么设备就可以读取它——不管它实际上是您的应用程序在读取,还是其他假装是应用程序的东西

您最多只能尝试混淆凭据,但这不太可能有用-那些可能对从应用程序中提取凭据感兴趣的人,也可能是那些有能力绕过此类混淆的人

在不了解您的用例的情况下,我无法给出更具体的建议。对于远程API,通常使用API密钥,但这需要用户创建一个帐户。对于无帐户的应用程序,您想要的是不可能的

我还应该指出,“防止黑客”并不是一个有意义的目标——这可能意味着很多事情。您需要了解威胁建模的工作原理,并确定您的“攻击者”到底是谁,他们的目标是什么,他们的能力是什么。只有这样,你才能找到解决办法


编辑:只是想再加一句警告:任何告诉你模糊处理对这类场景“有效”的人,都在试图向你推销一些东西。不幸的是,他们在这种尝试中通常相当成功。模糊处理模型不能也不起作用。

也许有帮助:您也可以检查一下。谢谢!我实际上是在我的应用程序中使用用户,但我的服务器上有一些不包含用户信息的信息,所以我试图用我的服务器用户名和密码下载这些信息。现在,我将使用用户向servlet提供的用户名和密码,servlet将处理信息并给出我想要的响应。@Pranav是的,这听起来像是正确的解决方案:)确保使用TLS(HTTPS)进行连接,这样登录就不会被恶意访问点截获!如果您将TLS证书或证书颁发机构硬编码到应用程序中,效果会更好。您可以在Google上搜索“MITM攻击”,以了解有关防止攻击类型的更多信息。@Pranav除了Sven的建议外,您还可以使用具有字符串加密功能的商用模糊器。即使您使用的是SSL pining技术,篡改应用程序和更改证书也不是问题。因此,最好的做法是保护应用程序的完整性(完整性控制/防篡改),并加密其有价值的数据。我会推荐我们的产品DexProtector来做到这一点。注意:我隶属于Licel(DexProtector的开发者)@IvanKinash混淆器是蛇油。它们不起作用,也不能起作用。@svensweg对不起,我不能同意你的看法。