我正在开发一个Android应用程序,通过它我通过GMAIL API发送邮件
要通过GMAIL API发送邮件,我必须向他们提供我的ID和密码。
GMailSender m = new GMailSender("myemailhere@gmail.com",
"mypasswordhere");
我知道写这样的密码根本不安全,因为我的密码很容易通过解压缩我的apk而被盗,而且在strings.xml中存储密码也不安全,因为xml也可以检索。 / p>
我的问题是 -
有没有其他方法可以在我的文件中写入密码以保证其安全?
答案 0 :(得分:4)
简短的回答不是。您不应将您的密码存储在代码或任何文件中的任何位置。
即使您加密它,就像有人说您必须在代码中的某处存储它的解密算法/密钥,这将很容易进行逆向工程。
答案 1 :(得分:2)
不,在设备上存储密码是不安全的 小建议总是以加密形式存储char []中的密码,而不是在必须存储时存储在String中。
由于字符串在Java中是不可变的,如果您将密码存储为纯文本,它将在内存中可用,直到垃圾收集器清除它,并且因为字符串池中使用字符串以便重新使用,所以它很可能会保留在记忆持续很长时间,这会造成安全威胁。由于任何有权访问内存转储的人都可以以明文形式找到密码,这是另一个原因,您应该始终使用加密密码而不是纯文本。由于字符串是不可变的,因此无法更改字符串的内容,因为任何更改都将产生新的字符串。因此,在字符数组中存储密码可以明显降低窃取密码的安全风险。
答案 2 :(得分:0)
存储密码不被认为是安全的,如果可以避免则不应该这样做。如果您出于某种原因需要考虑一些因素。