본문 바로가기

JSP

패스워드 해쉬 암호화 - SHA356, slat

해쉬 암호 : SHA356, HMAC256 - 만약 비밀번호 까먹으면 못 알려주고 초기화해서 이메일로 알려준다거나 함. 

암호화 + 복호화 : Base64

 

해쉬 

무엇을 해쉬해도 일정한 길이로 됨

 

해쉬로 간단하게 검증할 수 있어요. 비교해서

 

고정 길이인 해쉬라서 경우의 수가 많지만 있긴하니까 해쉬 충돌이 날 수 도 있는 미미한 단점이 있음.

 

A사 데이터 베이스에 패스워드가 비밀번호 해쉬된거

 

B사 데이터 베이스엔 그냥 원문 비밀번호

 

레인보우 테이블 : B사 비번을 해쉬한거를 A사 비번하고 매칭해놓은 것

 

이렇게 다 뚫을 수 있으니까 회사에서  소금칩니다.

 

slat

 

회사마다 각자 소금이 있어요 아무도 안가르쳐주는거

원문_소금 이렇게 비밀번호들에다가 

 

자바에서 한 복사들은 얕은 복사

리액트는 깊은 복사

깊은 복사 - 값을 완전

얕은 복사 - 레퍼런스 참조만


복제하기

System.arraycopy

 


 

3년정도 일하다가 공부해볼만할 공부

테스트 주도 개발

테스트만 빌드


1111 1111 

0010 0011

앤드연산

0010 0011

 

아무리 더해도 3자리 이걸 2자리로 만들었고 그걸 착착 append

& 0xFF ->마스킹하다

 

16진수 모르겠다

89abcdef


단축기 control + shift + o -> 전부 import


 

 

64기억하기!

 

 

 

 

Test에서 Junit4로 테스트한다.

 

즉 비밀번호 1234를 해쉬화 할 예정

해쉬 암호 : SHA256, HMAC256

암호화+복호화가 가능한 것 : Base64

 

plain은 Test할 임시 비밀번호

 

각 Byte를 구해서 배열을 선언한다.

 

비밀번호+SALT로 (레인보우 테이블을 막기위해서) 만큼 배열을 선언한다.

 

위는 내가 작성한코드이고 밑으로 하는게 편하다.

 

 

bytePlain의 0부터 bytePlain.length까지

bytePlainAndSalt의 0부터 bytePlain.length까지 복사

 

 

 

--

 

byteSalt의 0부터 byteSalt.length까지

bytePlainAndSalt의 bytePlain.length부터 bytePlain.length까지 복사


 

SHA-256외에 궁금하면 MessageDigest를 들어가서 본다.

 

위 로직보단 변환했다는것만 아는게 좋을 수도 있음

 

 


Login할때 비밀번호 해쉬화

 

만들어둔 SHA256.encodeSha256을 이용해서 비밀번호를 해쉬화 함

 

 

DB에서 1234가 해쉬화 됨

'JSP' 카테고리의 다른 글

블로그 검색기능  (0) 2020.06.10
블로그 페이징 rownum, index  (0) 2020.06.09
삭제하기  (0) 2020.06.08
블로그 상세보기,dto/수정하기  (0) 2020.06.08
JSOUP  (0) 2020.06.08