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 |
댓글