반응형
SHA-256은 Secure Hash Algorithm 의 약자로 256비트로 구성되어 64자리 문자열을 반환한다.
단방향 암호화 방식을 사용하기 때문에 복호화가 불가능합니다. 그로 인해 속도가 빠르다.
사용 예시로는 비밀번호 확인과정이 있다.
Java에서 SHA-256을 사용하기 위해서는 MessageDigest를 사용해야 한다.
MessageDigest.getInstance(""SHA-256")을 사용하여 SHA-256을 사용한다 선언한다.
update 메소드를 이용하여 객체에 원하는 문자열을 바이트의 형식으로 넣는다.
digest 메소드를 호출하면 그 값을 가져올 수 있다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class Main {
public static void main(String[] args) throws NoSuchAlgorithmException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s = br.readLine();
//SHA-256 형식으로 암호화
MessageDigest md = MessageDigest.getInstance("SHA-256");
//update() 메소드를 호풀할 때 마다 객체 내에 저장된 SHA-256 digest 값이 계속해서 갱신된다.
md.update(s.getBytes());
//digest()메소드를 호출하면 그 값을 가져올 수 있다.
for(byte b: md.digest()) {
System.out.printf("%02x", b); //%02x : 2자리 16진수 표시
}
}
}
반응형
댓글