react-native-crypto-js, crypto-js, AES 암호화
NodeJS 서버와 React-native 간에 데이터를 주고 받는데, AES 암호화를 이용해 주고 받을일이 생겼다.
react-native-crypto, react-native-crypto-js, crypto-js, crypto 패키지를 테스트 하면서 코딩을 했는데 … 엄청난 뻘짓과 삽질 후에 결국 crypto-js 로 AES 암호화를 구현했다.
Crypto, react-native-crypto
nodejs 에서 사용 가능한 패키지이고 Deprecated 되었다. React-native 에서 쓰려면 react-native-crypto를 사용해야 하는데 node core module 을 포함하고 있어서 rn-nodeify 라는 패키지를 이용해 react-native에 node core를 설치해줘야 한다.
해봤는데… 오류를 뿜었고 사용하고 있는 module이 지워지는 듯한 문제가 발생해 Pass 했다. …
crypto-js, react-native-crypto-js
crypto 가 일로 이전한게 아닌가 생각된다. 여튼 react-native-crypto-js 는 crypto-js 의 3.x 버전을 가지고 만들어 졌다고 한다. 현제 1.0.0 이다.
여튼 패키지를 NodeJS 와 React-native 에 설치하여 테스트를 했는데 잘 동작했다. 그래서 Device 에서 테스트 하려고 APK를 만들었는데 AES Decrypt 가 안되더라 …… (emulator 에서 release를 돌려도 안된다. only __DEV__ 모드에서만 제대로 동작한다. ..)
구글링 결과 나와 같은 사람들이 많다는 것을 알았고 해결책은 그냥 crypto-js를 쓰는것…
넵다 최신버전인 4.0.0 을 설치했지만 node core 가 있어서 인지 react-native 에서는 돌아가지 않았다.
그래서 3.1.8 버전을 설치했더니 비로소 동작하더라 ….
yarn add cypto-js@3.1.8
혹시 React-native 에서 AES 를 사용할 사람은 본글을 보고 삽질하지 말길 ….