전공/실무

Java 암호화

하루는노력 2018. 4. 12. 17:13
728x90
반응형
암호화의 방향은 두가지로 구분됩니다.
단방향인가?
양방향인가?

일명 암호화 복호화가 가능하면 양방향이라고 하며,
암호화 이후 암호를 풀수 없는 복호과가 안되면 단방향이라고 합니다.

보안을 위해 암호화를 많이 하지만
대표적인데 개인 정보의 비밀번호 같은 것이죠.

이 개인 로그인 비밀번호 같은 경우는 단방향 암호화를 사용합니다.
그래서 누군가 비밀번호를 잊어 버려도 
최고 관리자는 그 비밀번호를 찾아 줄 순 없죠.
그래서 암호화를 새로 입력하게 해서 처리해주는 것 입니다.
아무리 최고 관리자라고 해도 누군가의 개인 비밀번호를 알아 낼수 있다는 것은 보안적인 측면에서는 취약하니깐요.

아래는 단방향 SHA-256 을 사용하여 암호화하는 방법에 대한 샘플 소스 입니다.
참고 하셔서 멋진 보안에 충실한 프로그램을 완성해 주세요^^

# 단방향(비밀번호)
//SHA-256 
public static String getSHA256(String str) {
String rtnSHA = "";

try{
MessageDigest sh = MessageDigest.getInstance("SHA-256"); 
sh.update(str.getBytes()); 
byte byteData[] = sh.digest();
StringBuffer sb = new StringBuffer(); 

for(int i = 0 ; i < byteData.length ; i++){
sb.append(Integer.toString((byteData[i]&0xff) + 0x100, 16).substring(1));
}
rtnSHA = sb.toString();

}catch(NoSuchAlgorithmException e){
e.printStackTrace(); 
rtnSHA = null; 
}
return rtnSHA;
}

# 양방향(기타)
//BASE64


반응형
LIST