React-Native

[ReactNative] crypto-js를 이용한 AES ECB 모드 암호화 및 복호화 하기

살다보니개발자 2022. 12. 11. 19:56

리액트 네이티브에서 crypto-js를 이용해 AES ECB모드 암호화 및 복호화를 해보려고 한다.
https://www.npmjs.com/package/crypto-js

crypto-js

JavaScript library of crypto standards.. Latest version: 4.1.1, last published: a year ago. Start using crypto-js in your project by running `npm i crypto-js`. There are 8647 other projects in the npm registry using crypto-js.

www.npmjs.com




crypto-js 라이브러리 3.3.0 버전보다 높으면 react native 환경에서 잘 호환이 안된다는 이슈가 있어, 3.3.0 버전을 설치해주었다.

npm install crypto-js@3.3.0 --save

yarn add crypto-js@3.3.0

import CryptoJS from 'crypto-js';


암호화 예제 함수

const encryption = text => {

  // utf8로 키값을 인코딩한 변수
  let key = CryptoJS.enc.Utf8.parse('example');

  //mode는 ECB 모드 , NoPadding을 사용해 암호화를 진행
  let encrypted = CryptoJS.AES.encrypt(text, key, {
    mode: CryptoJS.mode.ECB,
    padding: CryptoJS.pad.NoPadding,
  });

  return encrypted.toString();
};


복호화 예제 함수

const decrpytion = text => {

  // utf8로 인코딩한 키값을 담은 변수
  let key = CryptoJS.enc.Utf8.parse('example');

  // AES ECB 모드 및 NoPadding을 사용해 복호화 진행
  let decrypted = CryptoJS.AES.decrypt(text, key, {
    mode: CryptoJS.mode.ECB,
    padding: CryptoJS.pad.NoPadding,
  });

  return decrypted.toString(CryptoJS.enc.Utf8);
};




태클은 언제나 환영입니다. 잘못된부분이 있다면 댓글 부탁드립니다. 감사합니다 :)