SHA
- Secure Hash Algorithm
- 가장 널리 사용되는 암호화 해시 함수 중 하나
- 텍스트 혹은 데이터 파일에 대한 서명을 만드는 데 사용
- Java에서 라이브러리 제공
- SHA-256은 256bit(32bit)의 해시를 생성
- 224, 256, 384, 512bit 의 해시를 생성할 수 있음
- 단방향 함수로, 결과를 원래 값으로 해독할 수 없음
MessageDigest
Java에서 제공하는 SHA-256해시를 위한 내장 클래스MessageDigest
는 MD5, SHA-1, SHA-256의 해시 함수를 제공한다.
MessageDigest digest = MessageDigest.getInstance("SAH-256");
해시 얻기
public static String encrypt(String str) throws NoSuchAlgorithmException {
MessageDigest digest = MessageDigest.getInstance("SHA-256");
byte[] hash = digest.digest(str.getBytes(StandardCharsets.UTF_8));
return bytesToHex(hash);
}
private static String bytesToHex(byte[] hash) {
StringBuffer stringBuffer = new StringBuffer();
for (int i = 0; i < hash.length; i++) {
String hex = Integer.toHexString(0xff & hash[i]);
if(hex.length() == 1) {
stringBuffer.append('0');
}
stringBuffer.append(hex);
}
return stringBuffer.toString();
}
'STUDY > Java' 카테고리의 다른 글
JPA | TIMESTAMP 저장 시간이 일치하지 않을 때.. (0) | 2021.09.06 |
---|---|
JPA | 복합 키 (Composite Key) 사용하기 (@IdClass) (1) | 2021.09.01 |
Java | AES-256 암/복호화 (0) | 2021.04.29 |
Java | Excel 파일 생성하기 (0) | 2021.04.12 |
Java | 정규식으로 특정 문자 사이 값 추출하기 (0) | 2021.04.09 |