목차

반응형

java 웹앱에서 로그인시 패킷에 입력한 아이디와 비밀번호가 암호화가 안되어서 날라간다고 암호화를 해달라고 요청이 왔다.

사실은 정교한 암호화를 해야하지만 급한일이 매우 많기에 일단 javascript와 java에서 쉽게 사용이 가능한 base64 암호화를 사용하였다.

form의 형태는 위와 같다.



현재 데이터를 입력한 뒤, 전송하면 위 처럼 암호화가 안되어서 날아간다.


javascript에서는 폼을 전송하기전에 btoa 함수를 사용하여 base64 암호화 처리를 해준다.

위 처럼 스크립트를 작성하면 전송도중 ID 부분에서 base64 암호화 결과값이 노출된 상태로 전송된다.

오늘 또 그 부분에 대해서 수정해달라고 요청이 왔기에

form에 hidden으로 아이디 넣는 부분을 만들어서 base64 암호화된 데이터는 따로 전송을 해줘야 할 것 같다.


일단 데이터는 암호화가 잘 되어서 날아간다.


위 처럼 base64 복호화 함수를 생성한다.

    public static String decrypt(String data) throws Exception {

if (data == null) {
return "";
}

byte[] hashValue = null; // 해쉬값
hashValue = data.getBytes();

return new String(Base64.decodeBase64(hashValue));
}



마지막으로 해당 객체를 이용하여 form에서 날아온 데이터를 복호화해서 사용한다.


반응형