STUDY/Java
Java | SHA-256
개미606
2021. 4. 30. 09:40
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();
}