본문 바로가기
LEARN/JAVASCRIPT

[JS] 자바스크립트로 비밀번호 암호화 하기 👉 SHA-256

by 아이엠제니 2023. 6. 29.


 

 

💡 SHA-256

  • 'SHA-256'은 Secure Hash Algorithm 256-bit의 줄임말로, 암호학적 해시 함수 중 하나다.
    해시 함수는 임의의 크기를 가진 데이터를 고정된 크기의 해시 값으로 변환하는 함수다.
  • SHA-256은 256비트(32바이트) 길이의 해시 값을 생성하며, 주로 데이터 무결성 검증, 메시디 인증 코드(MAC) 생성, 비밀번호 저장 등 다양한 보안 관련 작업에 사용된다.
    SHA-256은 입력 데이터의 작은 변화에도 큰 차이를 만들어내기 때문에 데이터의 무결성을 확인하는 데 유용하다.
  • SHA-256은 일방향 해시 함수이므로, 해시 값을 통해 원래 데이터를 복원할 수는 없다.
    따라서 주로 비밀번호의 안전한 저장과 비교, 파일의 무결성 검사 등에 활용된다.

출처: CHAT-gpt

 

 

 

<%-- sha256 --%>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/js-sha256/0.9.0/sha256.min.js"></script>

[join.jsp] 파일에 'sha256' 스크립트 추가

 

 

<body>
    <form name="joinForm" id="joinForm" method="post" action="/guide/join">
		<div class="form-group">
      		<input type="password" class="form-control my-3" placeholder="비밀번호" id="userPassword" name="userPassword" maxlength="20">
		</div>
        
        <input type="button" onclick="fnJoinSubmitBtn()" class="btn btn-primary form-control" value="회원가입">
    </form>
<body>

<script>
function fnJoinSubmitBtn() {

    // 비밀번호 암호화
    let pwTemp = null;
    let userPassword = document.querySelector("#userPassword");

    pwTemp = sha256(userPassword.value);
    userPassword.value = pwTemp;

    confirm("가입하시겠습니까?");
    $('#joinForm').submit();

  }
  </script>

 

 

 

💡 암호화 테스트

<script>

  const pw = sha256("12");
  console.log("sha256::  " + pw);

</script>

pw에 "12"를 담은 후에!

console에서 출력을 해보았다.

알 수 없는 문자들이 나오는 것을 보니, 암호화 성공!

 

하지만 스크립트에서  sha256을 사용하면, 보안 문제가 있기 때문에...

이건 연습을 해본 거고, 실제 암호화는 백에서 처리를 해야 한다.

그걸 하러 사라짐... 🥲

300x250