[java] 로그인 세션 구현을 위한 해쉬값 생성방법, 수정중

Sorbet·2021년 3월 23일
0
  • 로그인 세션을 구현하기 위해서는 클라-서버간 세션키라는걸 주고받는데요,
  • 세션키를 가지고 서버가 해당 클라이언트가 맞는지 아닌지를 판별하므로 User 정보에서 세션키를 만들수는 있지만, 세션키에서는 User정보로 되돌릴수 없는 비가역적인 연산이 필요한데, 이때 해쉬연산을 사용합니다.
  • 해쉬연산이 복호화가 아예 불가능한건 아니고, 레인보우테이블이나 뭐 뚫는게 아예 없는건 아닌데 대충, 지금 저희보다 +20년 정도의 기술격차가 있으면 뚫린다고 생각하면 됩니다.

중요

  • 백엔드 서비스/컨트롤러 에서 쓰려고 만들었는데, 검색해보니까, 톰캣 내부적으로 비슷한 복호화가 불가능한 암호화를 진행한다고 합니다. 그냥.. MD-5만들어본거에 의의를 두겠습니다.,...ㅋㅋ... ;;

    private static String generateSessionKey(User user) throws Exception {
        StringBuffer stringBuffer = new StringBuffer();
        MessageDigest mDigest = MessageDigest.getInstance("MD5");

        mDigest.update((user.getUserId() + Long.toString(user.getId())).getBytes());
        byte[] msgStr = mDigest.digest() ;

        for(int i=0; i < msgStr.length; i++){
            String tmpEncTxt = Integer.toHexString((int)msgStr[i] & 0x00ff) ;
            stringBuffer.append(tmpEncTxt) ;
        }
        return stringBuffer.toString() ;
    }
  • 코드는 위와 같습니다
  • 근데 이걸 쓰면왜 로그인기능이 동작을 안하는거지..?..?
profile
Sorbet is good...!

0개의 댓글