0
我想從SHA-1更改爲SHA-512以獲得更好的安全性,但我不完全清楚如何執行更改。從SHA-1更改爲SHA-512
這是我的方法與SHA-1:
public static String sha1Convert(String password) {
try {
MessageDigest crypt = MessageDigest.getInstance("SHA-1");
crypt.reset();
crypt.update(password.getBytes("UTF-8"));
return byteToHex(crypt.digest());
} catch (NoSuchAlgorithmException | UnsupportedEncodingException ex) {
Logger.getLogger(UserLoginManaged.class.getName()).log(Level.SEVERE, null, ex);
return null;
}
}
這是我一直在做的方法,但我不知道,如果它的工作,因爲完全好(我很抱歉,如果我做錯了什麼)。我正在將sha-1更改爲sha-512,但是當我嘗試登錄到我的應用程序時,它告訴我密碼錯誤。所以我不確定是否我認爲這種方法是錯誤的,或者我對某些事情無知。
public static String sha512Convert(String password) {
try {
MessageDigest sh = MessageDigest.getInstance("SHA-512");
sh.reset();
sh.update(password.getBytes());
StringBuilder sb = new StringBuilder();
for (byte b : sh.digest()) sb.append(Integer.toHexString(0xff & b));
return sb.toString();
} catch (NoSuchAlgorithmException e) {
Logger.getLogger(UserLoginManaged.class.getName()).log(Level.SEVERE, null, e);
throw new RuntimeException(e);
}
}
更好的安全性不是我想要更改爲SHA-512的唯一原因。但這只是其中之一。仍然感謝評論 – Lea