<aside> 🤐 암호화
<aside> 💷 SHA(Secure Hash Algorithm)
SHA-256, SHA-512 등 여러 방식이 있는데 SHA-256이 가장 많이 사용된다
SHA-256 : 데이터를 256bit 길이의 key로 변환해줌
<aside> ♟️ SHA-256 과정
→ 아무튼 내가 넣은 데이터가 256bit의 해시값으로 암호화되어서 나온다 = 다이제스트
</aside>
문제점 : 동일한 문자열은 동일한 해시값으로 나오기 때문에 레인보우 테이블이라는 다이제스트들을 모아둔 테이블이 있어서 해킹이 쉬울 수 있음
→ 보완 : 키 스트레칭 / 솔트
키 스트레칭 : 해싱을 여러번 반복 수행하는 방식
데이터의 뒤에 임의의 문자열을 덧붙여서 해싱하는 방식
비밀번호 + “문자열” 을 해싱
솔트값을 유저에 따라서 다르게 설정하면 한명이 해킹당해도 다른 사람은 다른 솔트값을 가지고 있기 때문에 다른 사람들은 해킹 위험이 덜하나는 장점이 있다
키 스트레칭 + 솔트로 뒤에 솔트값을 붙이고 해싱을 여러번하는 방식도 있다