在我的App中我通过电子邮件发送bug报告。我听说在这里硬编码我的密码是不安全的,所以我该如何保护它呢?
是否可以写入我的/ res / values然后从那里读取它?
原因是我不会使用内部电子邮件应用程序。然后用户退出我的应用程序,这不是很好,因为他可能不会回来
GMailSender sender = new GMailSender("my_emailadress@gmail.com", "my_password");
sender.sendMail("Bugreport",
currentQuestion.getID(),
"my_emailadress@gmail.com",
"my_emailadress@gmail.com");
请帮帮我。 感谢
答案 0 :(得分:3)
如果您将密码放在应用程序中,则没有真正安全的方法可以保护您的密码。最不重要的事情是制作一个分离帐户,因此它与您的真实帐户没有相关联。
除此之外,我建议不要使用这种方法。使用邮件应用程序中的构建并不是那么糟糕。这样用户就会知道,他正在为改善你的应用做出贡献,这是一件好事。
第三种可能性是制作一个网页,用于在发生错误时提交错误并在您的应用中发送HTTP请求。但是,让用户知道它,因为如果没有,他可能会认为你在监视他。
然后,内置了android的崩溃报告机制,所以你根本不需要做任何事情。
答案 1 :(得分:0)
您可以使用SHA加密来加密密码:
以下是使用SHA加密的代码:
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class AeSimpleSHA1 {
private static String convertToHex(byte[] data) {
StringBuffer buf = new StringBuffer();
for (int i = 0; i < data.length; i++) {
int halfbyte = (data[i] >>> 4) & 0x0F;
int two_halfs = 0;
do {
if ((0 <= halfbyte) && (halfbyte <= 9))
buf.append((char) ('0' + halfbyte));
else
buf.append((char) ('a' + (halfbyte - 10)));
halfbyte = data[i] & 0x0F;
} while(two_halfs++ < 1);
}
return buf.toString();
}
public static String SHA1(String text)
throws NoSuchAlgorithmException, UnsupportedEncodingException {
MessageDigest md;
md = MessageDigest.getInstance("SHA-1");
byte[] sha1hash = new byte[40];
md.update(text.getBytes("iso-8859-1"), 0, text.length());
sha1hash = md.digest();
return convertToHex(sha1hash);
}
}