KoreaIt Academy/JAVA
					
						
					
				
			[JAVA, JAVASCRIPT] base64를 이용한 암호화와 복호화
728x90
    
    
  반응형
    
    
    
  
암호화와 복호화(base64) 
<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.2/rollups/aes.js"></script> 
[javascript] 
btoa(문자열) --> base64로 암호화 
atoa(문자열) --> base64로 복호화 
[java] 
Base64.getEncoder().encodeToString(문자열.getBytes()) --> base64로 암호화 
Base64.getDecoder().decode(문자열) --> base64로 복호화
login.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>로그인</title>
</head>
<body>
	<form action="login_ok.jsp" name="loginForm" method="post">
		<p>
			<label>
				아이디 : <input type="text" name="id">
			</label>
		</p>
		<p>
			<label>
				비밀번호 : <input type="password" name="password">
			</label>
		</p>
		<p>
			<input type="button" value="로그인" onclick="send()">
		</p>
	</form>
</body>
<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.2/rollups/aes.js"></script>
<script>
	function send(){
		var frm = document.loginForm;
		if(!frm.id.value){
			alert("아이디를 입력해주세요.");
			frm.id.focus();
			return;
		}
		
		if(!frm.password.value){
			alert("비밀번호를 입력해주세요.");
			frm.password.focus();
			return;
		}
		
	    frm.password.value = btoa(frm.password.value);
	    
		frm.submit();
	}
</script>
</html>
login_ok.jsp
<%@page import="java.nio.charset.StandardCharsets"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@page import="java.util.Base64"%>
<%@page import="java.util.Base64.Decoder"%>
<jsp:useBean class="com.koreait.beans.TABLE_USER_DAO" id="dao"/>
<%
   String id = request.getParameter("id");
   String pw = request.getParameter("password");
   
   Decoder decoder = Base64.getDecoder();
   pw = new String(decoder.decode(pw));
   
   if(dao.login(id, pw)){
      session.setAttribute("id", id);
      response.sendRedirect("login.jsp");
   }else{
%>
   <script>
      alert("로그인 실패");
      location.href = "login.jsp";
   </script>
<%
   }
%>728x90
    
    
  반응형
    
    
    
  'KoreaIt Academy > JAVA' 카테고리의 다른 글
| [JAVA] 크롤링(Crawling) (0) | 2021.08.24 | 
|---|---|
| 26. JDBC [OracleDB과 JAVA연동], MVC모델-(회원가입, 로그인) (0) | 2021.08.11 | 
| 25. [소프트웨어 디자인 설계 패턴] MVC 모델 (0) | 2021.08.02 | 
| 24. JAVA의 파일 입출력(txt파일로 저장 및 읽기) (0) | 2021.07.29 | 
| 23. JAVA의 쓰레드(Thread), 동기화(synchronized), 상태제어(wait, join, sleep, interrupt, interrupted) (0) | 2021.07.28 | 
 
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
		
		
		
		
		
		
		
	
댓글