在移动应用中安全地对密码进行硬编码

时间:2011-07-24 21:05:26

标签: iphone android windows-phone-7 blackberry passwords

我有一个Web服务器,它创建一个QR码,即[用户名] + [用户名] [密码]的md5哈希值。 其中[username]是当时登录的用户。 其中[密码]是我设置的系统密码,对于Web服务器和应用程序是通用的。

我的Android / iPhone / BlackBerry / Windows应用程序将扫描此QR码并使用QR码中提供的[用户名]与[密码]一起使用,这将告诉我QR码来自我的服务器。

显然,如果有人要抓住[密码],那么他们就可以创建不是来自我的网络服务器的二维码。那么有没有安全地将[密码]存储在我的应用程序中,或者有人可以反编译.apk并在classes.dex中找到它?

3 个答案:

答案 0 :(得分:9)

您可以以某种方式模糊密码,但最终这只是通过默默无闻的安全性。想要的人当然可以对其进行逆向工程。

您可能希望查看公钥加密以避免这种情况 - 即使有人访问公钥,他们仍然无法使用它来模拟您的服务器。

答案 1 :(得分:0)

没有

如果某人有足够的动力,他们就可以对硬编码的密码进行逆向工程。

答案 2 :(得分:0)

我不确定其他平台,但如果你把你的密码硬编码在Android上的明文,他们会很容易得到它。其他平台可能需要更高级的方法。您可以使用更高级的哈希算法来散列密码,这样他们就不会获得原始密码,但是根据您的说法,您不希望他们制作“伪”QR码。

简短的回答是否定的,因为如果是在客户端,一切都会被破解。