MessageDigest
Java에서 MD5, SHA를 이용한 알고리즘을 사용하려면 MessageDigest 클래스를 이용합니다.
MessageDigest 클래스에는 update() 메소드가 있는데, 이 메소드를 호출할때마다 객체 내에 저장된 digest 값이 계속해서 갱신이됩니다. 최종적으로 digest() 메서드를 호출하면 그 값을 가져올 수 있습니다.
- package com.javalec.security.seed;
- import java.security.MessageDigest;
- import java.security.NoSuchAlgorithmException;
- public class HashTest {
- // TODO Auto-generated method stub
- }
- try {
- // MD2, MD4, MD5, SHA-1, SHA-256, SHA-512
- sh.update(str.getBytes());
- byte byteData[] = sh.digest();
- for (int i = 0; i < byteData.length; i++) {
- }
- hashString = sb.toString();
- e.printStackTrace();
- hashString = null;
- }
- return hashString;
- }
- }
MessageDigest 중요 소스 코드
- sh.update(str.getBytes());
- byte byteData[] = sh.digest();
API 설명
http://ith.kr/chair/javadoc/j2s131k/java/security/MessageDigest.html
MessageDigest.getInstance("Algorithm")에서 "Algorithm"에 MD5, SHA-256, SHA512를 대입할 경우 대입한 메시지 다이제스트 오브젝트를 작성합니다.
update()는 지정된 바이트 데이터를 사용해 다이제스트를 갱신합니다.
digesst()는 바이트배열로 해쉬를 반환합니다, 패딩 등의 최종 처리를 행해 해시 계산을 완료 합니다.
*참고
http://crazydeveloper.tistory.com/entry/%EC%95%94%ED%98%B8%ED%99%94%EB%A9%94%EC%8B%9C%EC%A7%80-%EB%8B%A4%EC%9D%B4%EC%A0%9C%EC%8A%A4%ED%8A%B8Message-Digest
http://javafactory.tistory.com/1284
// 0xff란 ? http://emflant.tistory.com/133
*유용한 사이트
http://www.fileformat.info/tool/hash.html
해시 알고리즘으로 변환된 스트링이 제대로 변환되었는지 확인할 수 있는 사이트이다.
'Java 개발 이야기' 카테고리의 다른 글
자바 랜덤함수를 이용한 인증번호 인증문자 만들기 (0) | 2017.09.02 |
---|---|
자바 JVM 메모리 구조 이해하기 (2) | 2017.08.28 |
자바 DB 연동하기(Oracle) (0) | 2017.08.22 |
자바 디자인 패턴 - 싱글톤 패턴 예제 및 설명 (0) | 2017.07.31 |
자바 String의 단점 그리고 StringBuffer와 StringBuilder (0) | 2016.11.28 |