Java에서 기본적으로 SHA나 기타 다른 해시 알고리즘을 사용할 수 있는 라이브러리("java.security.MessageDigest")를 제공하고 있다.
MD5, SHA-1도있지만 SHA-256 사용을 권장한다.
public class main {
public static void main(String[] args) throws Exception {
System.out.println(sha256("abc123!@#$"));
}
/**
* SHA-256으로 해싱하는 메소드
*
* @param bytes
* @return
* @throws NoSuchAlgorithmException
*/
public static String sha256(String msg) throws NoSuchAlgorithmException {
MessageDigest md = MessageDigest.getInstance("SHA-256");
md.update(msg.getBytes());
return bytesToHex1(md.digest());
}
/**
* 바이트를 헥스값으로 변환한다
*
* @param bytes
* @return
*/
public static String bytesToHex(byte[] bytes) {
StringBuilder builder = new StringBuilder();
for (byte b: bytes) {
builder.append(String.format("%02x", b));
}
return builder.toString();
}
}
실행결과
cb29b617e1fd57f8b78941777e67c798c1f4c57010cfc93f09ce9140c5bb3bdd
'프로그래밍 > JAVA' 카테고리의 다른 글
오늘 날짜에서 add day (0) | 2023.06.15 |
---|---|
특정 함수 일정시간마다 반복 실행하기 (0) | 2019.05.16 |
코드 실행 시간 측정하기 (System.currentTimeMillis()) (0) | 2019.05.16 |
문자열 한줄씩 읽도록 만들기 (0) | 2019.05.16 |
자바로 여러명에게 메일보내기 네이버 SMTP활용. (0) | 2019.03.29 |