2024. 2. 28. 18:00ㆍ2023.11.21-2024.05.31
-- SHA2 924592b9b103f14f833faafb67f480691f01988aa457c0061769f58cd47311bc
SELECT SHA2('01234567',256)
FROM DUAL;
데이터베이스 암호화
사용자의 입력 ->jsp ->스프링 ->DB
-------------------------------------------------평문 저장
개인정보는 다 암호화 해서 저장하세요.
암호화 종류
구간 http80(탈취 위험성이 있음) https443(비식별)
스프링 시큐리티 사용자가 jsp -> 스프링 ->DB
DB암호화 /////
대칭키 암호화
: 대표적인 대칭키 암호 알고리즘은 국내의 SEED,ARIA,LEA,HIGHT 국외의 AES,3TDEA,Camellia 등이 있다.
듀얼테이블 :임시(가상으)로 존재하는 테이블
SELECT NOW()
FROM DUAL;
여기 블로그 보고 따라해보자.
https://shxrecord.tistory.com/238
암호화 하기
--암호화 하기
SELECT AES_ENCRYPT(str,key_str)
FROM DUAL;
헥사코드로 변경해서 사용하기
compose > book변경
--암호화 하기
SELECT HEX(AES_ENCRYPT('01234567','book'))FROM DUAL;
복호화 : 다시 평문으로 변경
--복호화(평문화)
SELECT
AES_DECRYPT(UNHEX('D1D94F7847135EA0901A5DD3D213561C'),'book')
FROM DUAL;
md5 : 단방향으로 암호화만 된다.
그래서 입력받은 것을 꼭 복호화하고 확인 후 입력한다.
select MD5('01234567')
FROM DUAL;
HEX, MD5 >두개 섞어보기
SELECT
HEX(AES_ENCRYPT(MD5('01234567'),'book'))
FROM DUAL;
같은내용 as로 암호로 지칭
SHA2
: SHA-2 계열은 224, 256, 384, 512비트로 된 다이제스트(해시값)이 있는 6개의 해시 함수를 구성하고 있다.
-- SHA2 924592b9b103f14f833faafb67f480691f01988aa457c0061769f58cd47311bc
SELECT SHA2('01234567',256)
FROM DUAL;
우리 암호를 암호화 시켜서 사용
기존 저장되어있는 패스워드 암호화
-- 우리꺼 암호화 : member 테이블
SELECT mpw
FROM member;
암호키 Daiso(대소문자 구분)
-- 암호키 Daiso
-- HEX(AES_ENCRYPT(mpw,'Daiso'))
UPDATE member SET mpw=HEX(AES_ENCRYPT(mpw,'Daiso'));
암호 공통으로 변경
UPDATE member SET mpw='01234567'
전체 암호 >암호화
UPDATE member SET mpw=HEX(AES_ENCRYPT(mpw,'Daiso'))
암호화에 사용한 쿼리
--암호화 하기
SELECT HEX(AES_ENCRYPT('01234567','book'))FROM DUAL;
--복호화(평문화)
SELECT
AES_DECRYPT(UNHEX('D1D94F7847135EA0901A5DD3D213561C'),'book')
FROM DUAL;
-- MD5 > 2e9ec317e197819358fbc43afca7d837
select MD5('01234567')
FROM DUAL;
-- HEX, MD5
SELECT
HEX(AES_ENCRYPT(MD5('01234567'),'book')) AS '암호'
FROM DUAL;
-- SHA2
SELECT SHA2('01234567',512)
FROM DUAL;
-- 우리꺼 암호화 : member 테이블
SELECT mpw
FROM member;
-- 암호키 Daiso
-- HEX(AES_ENCRYPT(mpw,'Daiso'))
UPDATE member SET mpw=HEX(AES_ENCRYPT(mpw,'Daiso'));
-- 복호화
UPDATE member SET mpw='01234567'
UPDATE member SET mpw=HEX(AES_ENCRYPT(mpw,'Daiso'))
로그인매퍼
복호화 시킨거 패스워드 뜨게 하기
SELECT AES_DECRYPT(unhex(mpw),'Daiso') AS '복호화' FROM member;
>이후에 로그인 되어야하고, 회원가입할 때 동일한 비밀번호를 사용해서 같은지 확인
>> 로그인도 되고, 암호화 되서 데이터베이스에도 저장된다.
해야할 것
1. 비밀번호 pw1과 pw2가 같은지 확인하기 =3글자 이상 >스크립트로 짜보기
2. 이름 길이 검사 = 3글자 이상, 10글자 이하 //아이디 체크
3. 이메일 형식이 맞는지 검사 =@가 있는지 검사, .있는지 검사
4. 전송하기
1. 비밀번호 확인
조인jsp >스크립트 안에 비밀번호 같은지 확인하는 스크립트 작성
function passConfirm(){
let password = document.getElementById('password');
let passwordConfirm = document.getElementById('passwordConfirm');
let confrimMsg = document.getElementById('confirmMsg');
let correctColor = "#00ff00";
let wrongColor = "#ff0000";
if(password.value == passwordConfirm.value){
confirmMsg.style.color = correctColor;
confirmMsg.innerHTML ="비밀번호 일치";
}else{
confirmMsg.style.color = wrongColor;
confirmMsg.innerHTML="비밀번호 불일치";
}
}
>body 안에 비밀번호, 비밀번호2에 만들어주기
<!-- 비밀번호 -->
<div class="mb-3 row">
<label for="inputPassword" class="col-sm-2 col-form-label">비밀번호</label>
<div class="col-sm-5">
<input type="password" class="form-control" id="password" placeholder="암호를 입력하세요">
</div>
<!-- onkeyup="JP function" 입력이 되었을 때, -->
<!-- 비밀번호2 -->
<div class="col-sm-5">
<input type="password" class="form-control" id="passwordConfirm" placeholder="암호를 확인하세요" onkeyup="passConfirm()">
<span id="confirmMsg"></span>
</div>
</div>
여기 블로그 참고해서 만들었다.
https://m.blog.naver.com/yura0501/221424122767
2.아이디체크 > 시발 안된다.
'2023.11.21-2024.05.31' 카테고리의 다른 글
20240304 스프링(관리자페이지-adminboard, 페이징, 검색, 게시글 수 ) (0) | 2024.03.04 |
---|---|
20240229 스프링(아이디중복체크(idCheck), 페이징, 검색(search ) (3) | 2024.02.29 |
20240228 스프링(회원가입) (1) | 2024.02.28 |
20240227 스프링(공지 게시판-jsp만들기, detail만들기, 수정 삭제 버튼만들기, 페이징 ,배지(new)) (1) | 2024.02.27 |
20240227 스프링(공지 게시판) (1) | 2024.02.27 |