더 나은 보안을 위해 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