JAVA 해싱 알고리즘 사용하기

Jakezo·2021년 9월 5일
0

Java

목록 보기
7/9

해싱알고리즘

해싱알고리즘은 해시 함수를 기반으로 하는 암호화 알고리즘 중 하나입니다.

해싱 알고리즘이 암호화에 사용되는 이유는 해시함수의 특성에서 비롯됩니다.

해시함수 구현

Java에서는 기본적으로 해시 알고리즘을 사용하는 라이브러리를 제공하고 있습니다

java.security.MessageDigest에 해당 라이브러리가 존재하며, 이를 이용하여 문자열에 해시 처리가 가능합니다.

MessageDigest의 문서

MessageDigest에서는 MD5, SHA-1, SHA-256을 사용하고 있으며, SHA-1의 사용은 권장하지 않으므로

/**
* 가장 기본적인 형태의 해시함수 구현
*/
public byte[] hasing(String src) throws NoSuchAlgorithmException {
  MessageDigest md = MessageDigest.getInstance("SHA-256");// 해시 알고리즘에서 사용할 알고리즘의 종류를 적어준다.
  md.update(msg.getBytes());
  return md.digest();
}
/**
* 위와 형태가 비슷하지만 암호화의 결과물로 나온 바이트 타입의 배열을 16진수로 바꾸어 알아보기 힘들게 한다
*/
public String hasing(String src) throws NoSuchAlgorithmException {
  MessageDigest md = MessageDigest.getInstance("SHA-256");
  md.update(msg.getBytes());
  StringBuilder sb = new StringBuilder();
  for(byte b : md.digest()){
// 바이트를 2자리의 16진수로 바꾸는데, 남는자리가 생긴다면 0을 추가한다
    sb.append(String.format("%02x", b));
  }

  return sb.toString();
}
profile
탐험가

0개의 댓글