为了保存用户名和密码,我正在对它们进行加密,然后保存它们。当用户再次登录时,我需要显示用户名。我不知道解密用户名有多难/ eassy。这是我用于加密的算法
public static String getEncryptedValue(String str) {
String password = str;
String algorithm = "SHA";
byte[] plainText = password.getBytes();
try {
md = MessageDigest.getInstance(algorithm);
} catch (Exception e) {
e.printStackTrace();
}
md.reset();
md.update(plainText);
byte[] encodedPassword = md.digest();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < encodedPassword.length; i++) {
if ((encodedPassword[i] & 0xff) < 0x10) {
sb.append("0");
}
sb.append(Long.toString(encodedPassword[i] & 0xff, 16));
}
return sb.toString();
}
加密用户名和电子邮件也是一种好习惯吗?
答案 0 :(得分:1)
您实际上并未加密数据。您正在使用SHA摘要哈希字符串。这项行动是不可逆转的。您无法取回原始数据。
哈希密码是一种非常好的做法,所有应用程序都在使用它。您无需实际取回密码,只需要检查用户输入的密码与存储的密码。为此,您在输入的字符串上应用哈希值,并将其与存储的哈希值进行比较。
散列用户名和电子邮件并不是一种有用的方法,因为那时你无法取回它们!但是,您可以加密用户名和电子邮件,并在需要时对其进行解密。为此,您可以使用任何有效的加密/解密算法。