Language/Java / JSP
[Java] SHA256, MD5 암호화 하기
과일가게 개발자
2014. 7. 28. 14:14
반응형
특정 텍스트를 암호화 하여 DB에 보관해야 할 일들이 있다.
특히 패스워드 같은것은 입력받은 문자 그대로 저장하는것보다 암호화 하여 저장하는것이 보안을 더 높일수 있다.
1. SHA256 암호화
/**
* 문자열을 SHA-256 방식으로 암호화
* @param txt 암호화 하려하는 문자열
* @return String
* @throws Exception
*/
public String getEncSHA256(String txt) throws Exception{
StringBuffer sbuf = new StringBuffer();
MessageDigest mDigest = MessageDigest.getInstance("SHA-256");
mDigest.update(txt.getBytes());
byte[] msgStr = mDigest.digest() ;
for(int i=0; i < msgStr.length; i++){
byte tmpStrByte = msgStr[i];
String tmpEncTxt = Integer.toString((tmpStrByte & 0xff) + 0x100, 16).substring(1);
sbuf.append(tmpEncTxt) ;
}
return sbuf.toString();
}
2. MD5 암호화
/**
* 문자열을 MD-5 방식으로 암호화
* @param txt 암호화 하려하는 문자열
* @return String
* @throws Exception
*/
public String getEncMD5(String txt) throws Exception {
StringBuffer sbuf = new StringBuffer();
MessageDigest mDigest = MessageDigest.getInstance("MD5");
mDigest.update(txt.getBytes());
byte[] msgStr = mDigest.digest() ;
for(int i=0; i < msgStr.length; i++){
String tmpEncTxt = Integer.toHexString((int)msgStr[i] & 0x00ff) ;
sbuf.append(tmpEncTxt) ;
}
return sbuf.toString() ;
}
아울러 네이버 개발자 블로그에 "안전한 패스워드 저장" 이라는 글이 있으니, 한번 읽어보는것도 좋음.