암호가 필요한 개인 정보
1. 비밀번호
2. 바이오정보
3. 주민등록번호 ( 2014년 8월 7일 부터 수집금지)
4. 신용카드 번호
5. 계좌번호
6. 여권번호
7. 운전 면허번호
8. 외국인 등록 번호
등 이면 이들 정보들은 데이터베이스에 저장 및 통신망을 통해 송/수신되는 경우 반드시 암호화 되어야 한다.
CREATE TABLE LOGIN (
ID VARCHAR2(5) NOT NULL PRIMARY KEY,
PWD VARCHAR2(10) ,
PWD1 NVARCHAR2(50) ,
PWD2 NVARCHAR2(50)
);
package com.spring.biz;
public class LoginVo {
private String id;
private String pwd;
private String pwd1;
private String pwd2;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public String getPwd1() {
return pwd1;
}
public void setPwd1(String pwd1) {
this.pwd1 = pwd1;
}
public String getPwd2() {
return pwd2;
}
public void setPwd2(String pwd2) {
this.pwd2 = pwd2;
}
@Override
public String toString() {
return "LoginVo [id=" + id + ", pwd=" + pwd + ", pwd1=" + pwd1 + ", pwd2=" + pwd2 + "]";
}
}
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h2>회원가입하기</h2>
<form action="join.do" method="post">
<table>
<tr>
<td>아이디</td>
<td>
<input type="text" name="id">
</td>
</tr>
<tr>
<td>패스워드</td>
<td>
<input type="text" name="pwd">
</td>
</tr>
<tr>
<td colspan=2>
<input type="submit" value="가입하기">
</td>
</tr>
</table>
</form>
</body>
</html>
package com.spring.biz;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
public class LoginController {
@Autowired
LoginService s ;
@RequestMapping (value="/join.do", method = RequestMethod.POST)
public String insert(LoginVo vo) throws Exception {
SHA256 sha = SHA256.getInsatnce();
String shaPass = sha.getSha256(vo.getPwd().getBytes());
String bcPass = BCrypt.hashpw(shaPass, BCrypt.gensalt());
vo.setPwd1(shaPass);
vo.setPwd2(bcPass);
s.insert(vo);
return "end.jsp";
}
}
package com.spring.biz;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class LoginService {
@Autowired
LoginDAO dao;
public void insert(LoginVo vo) {
dao.insert(vo);
}
}
package com.spring.biz;
import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
@Repository
public class LoginDAO {
@Autowired
SqlSessionTemplate mybatis;
public void insert(LoginVo vo) {
mybatis.insert("LoginMapper.loginInsert", vo);
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="LoginMapper">
<insert id="loginInsert">
<![CDATA[
insert into login ( id, pwd, pwd1, pwd2 )
values ( #{id} , #{pwd} ,#{pwd1} ,#{pwd2} )
]]>
</insert>
</mapper>
혹시 로그인 할 때도 1234 할때 되시나요..?
데이터베이스에 암호화까지 해서는 저장이 되는데 로그인할때 암호화값을 입력해야하네요..
1234는 안됩니다.. 물론 올려주신 예제는 아니고 제가 하다가.. 이런 오류가 있어서 답을 찾고 있습니다.
저는 jsp 까지만 배웠고, mySQL 과 같이 쓰는 중입니다.