在java中解密保存的加密用户名

时间:2013-05-12 15:40:16

标签: java username encryption

为了保存用户名和密码,我正在对它们进行加密,然后保存它们。当用户再次登录时,我需要显示用户名。我不知道解密用户名有多难/ 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();
}

加密用户名和电子邮件也是一种好习惯吗?

1 个答案:

答案 0 :(得分:1)

您实际上并未加密数据。您正在使用SHA摘要哈希字符串。这项行动是不可逆转的。您无法取回原始数据。

哈希密码是一种非常好的做法,所有应用程序都在使用它。您无需实际取回密码,只需要检查用户输入的密码与存储的密码。为此,您在输入的字符串上应用哈希值,并将其与存储的哈希值进行比较。

散列用户名和电子邮件并不是一种有用的方法,因为那时你无法取回它们!但是,您可以加密用户名和电子邮件,并在需要时对其进行解密。为此,您可以使用任何有效的加密/解密算法。