본문 바로가기
JAVA/Java

[Java] 에서 SHA-256 암호화 하기

SHA-256 암호화

예를들어 회원가입시 입력한 암호는 기본적으로 암호화 하여 저장을 하는것이 좋은데 일반적으로는 수많은 암호화 방식중에 가장 대중적인 SHA(Secure Hash Algorithm)를 많이 사용합니다. SHA는 현재 SHA-1, SHA-2계열이 주로 사용되며 SHA-2계열은 다시 세부적으로 SHA-224, SHA-256, SHA-384, SHA-512로 구분되어 지는데 그중에서 SHA-256이 가장 보편화 되어 사용되고 있습니다.

 

이 포스팅에서는 JAVA에서 SHA-256으로 암호화하는 코드에 대하여 알아볼 예정이며 당연한 이야기이지만 해시로 한번 암호화한 문자는 복호화가 불가능합니다.

 

 

 

 

 

1. 암호화 코드

public static String EncBySha256(String data) throws Exception {
  String retVal = "";
  try {
  	MessageDigest md = MessageDigest.getInstance("SHA-256");
  	md.update(data.getBytes());

  	byte byteData[] = md.digest();
  	StringBuffer sb = new StringBuffer();
    
    for(int i=0; i<byteData.length; i++) {
      sb.append(Integer.toString((byteData[i]&0xff) + 0x100, 16).substring(1));
    }

    StringBuffer hexString = new StringBuffer();
    for(int i=0; i<byteData.length;i++) {
    String hex = Integer.toHexString(0xff & byteData[i]);
    if(hex.length() == 1) {
      hexString.append('0');
    }
      hexString.append(hex);
    }

  	retVal = hexString.toString();
  } catch(NoSuchAlgorithmException e){
  	System.out.println("EncBySHA256 Error:" + e.toString());
  }
  return retVal;
}

 

별다른 설명없이 코드로 대체합니다.

 

 

 

 

 

댓글