해쉬 암호 : 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 |