리액트에서 cryptoJS 사용하는 법

2021. 4. 15. 11:44·프론트엔드/React

cryptoJS 사용하는 법

지금부터 plan text를 암호화 하는 방법을 알아보겠습니다.

우선 Work Flow를 읽어보며 흐름을 잡으시고, 예시를 보면서 사용법을 익혀보겠습니다!

 

Work Flow

1. npm i crypto-js 설치

 npm i crypto-js 

 

2. import crypto from 'crypto-js'

 import crypto from 'crypto-js';

 

3. Encrypt

const ciphertext = CryptoJS.AES.encrypt('암호화할 값', 'secret key').toString();

*secret key는 서버개발자와 공유하는 키값이다.

 

4. Decrypt

const bytes = CryptoJS.AES.encrypt(ciphertext, 'secret key').toString();
const originalText = bytes.toString(CryptoJS.enc.Utf8); // output: '암호화할 값'

 

예시코드

export default function Authentication() {
    const [password, setPassword] = useState();
    
    const onChangeInput = (e) => {
      setPassword(crypto.AES.encrypt(e.target.value, process.env.REACT_APP_SECRET_KEY).toString())
    }
    
    const handleSubmit = (e) => {
      e.preventDefault();
      axios.post("api 주소", {pw: password}).then(res => console.log(res.data))
    }
    
   return (
    <form onSubmit={handleSubmit}>
        <label>비밀번호를 입력해주세요!</label>
        <input type="password" placeholder="비밀번호" onChange={onChangeInput}/>
      <button type="submit">Submit</Button>
    </form>
   )
}

Logic

1) 사용자가 비밀번호를 입력하면
2) 암호화된 상태로 상태값에 사용자가 입력한 비밀번호를 저장.
3) 사용자가 Submit버튼을 누르면 암호화된 상태값을 서버로 전달.

4) 이후 서버에서는 전달받은 암호화 값을 Decrypt(복호화)할 수 있다. (Work Flow 4번).

 

 

 

'프론트엔드 > React' 카테고리의 다른 글

현업에서 바로 적용해보는 프론트엔드 클린코드  (0) 2021.10.28
리액트 불변성이란 무엇이고, 왜 지켜야 할까?  (2) 2021.06.24
간단하지만 명료하게 리액트 의존성 배열 정리  (0) 2020.10.13
리액트 함수 컴포넌트 10가지 반환값  (0) 2020.09.19
리액트 컴포넌트의 상태값과 속성값 개념을 구분하여 알자  (0) 2020.09.18
'프론트엔드/React' 카테고리의 다른 글
  • 현업에서 바로 적용해보는 프론트엔드 클린코드
  • 리액트 불변성이란 무엇이고, 왜 지켜야 할까?
  • 간단하지만 명료하게 리액트 의존성 배열 정리
  • 리액트 함수 컴포넌트 10가지 반환값
꿀표
꿀표
양봉업자
  • 꿀표
    꿀로그
    꿀표
  • 전체
    오늘
    어제
    • 분류 전체보기 (82)
      • 인디해커 (0)
      • AI (0)
      • 프론트엔드 (34)
        • Javascript (17)
        • React (9)
        • Git (2)
        • Web Env (4)
        • Typescript (1)
        • 웹접근성 (1)
        • 상태관리 (0)
      • CS (8)
        • Network (3)
        • 알고리즘 (5)
      • 글쓰기 (3)
        • 생각 (2)
        • 서적 (1)
      • JAVA (37)
        • JAVA 기초 (22)
        • JSP (15)
  • 블로그 메뉴

    • 방명록
  • 인기 글

  • 태그

    network
    알고리즘
    greedy
    프로그래머스
    cross browsing
    react
    구명보트
    javascript
    그리디
    js
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
꿀표
리액트에서 cryptoJS 사용하는 법
상단으로

티스토리툴바