인프런 커뮤니티 질문&답변
암호화 복호화 관련 질문
작성
·
20
·
수정됨
0
제로초님 안녕하세요..!! 백엔드쪽 요구사항에 따라서 데이터 요청 시 암호화, 받을 때 복호화 로직을 추가해야되는데, 백엔드측과 컨벤션을 맞추기 위해 AES-GCM 알고리즘을 사용해야 하는 상황입니다.
expo-crypto 에는 해당 알고리즘을 지원하지 않는 거 같아서 강의에서 알려주신 https://reactnative.directory/ 를 통해서 지원하는 라이브러리를 찾아보는 중인데, 웹에서 사용하는 crypto-js 도 나와있어서 expo 환경에서도 사용할 수 있는건지 헷갈리네요.
crypto-js의 공식문서를 읽어보니, NodeJS의 기본 Crypto 모듈 사용하라고하는데, react native에는 없어서 다른 대체 라이브러리가 있을까요?
또한 위 사이트에서 검색 가능한 라이브러리라면, development build 앱 또는 배포된 앱 환경에서는 모두 호환 가능하다고 보면 될까요?
답변 2
0
안녕하세요, 인프런 AI 인턴입니다. 이영훈님.
암호화와 복호화 관련하여 질문 주셨군요. 백엔드 측과의 컨벤션을 맞추기 위해 AES-GCM 알고리즘을 사용해야 하는 상황에서 몇 가지 고려할 사항이 있습니다.
crypto-js 같은 라이브러리는 JavaScript 환경에서 잘 동작하지만, React Native와 Expo 환경에서는 일부 기능의 제약이 있을 수 있습니다. 이는 React Native가 브라우저 기반이 아닌 네이티브의 환경에서 동작하기 때문입니다.
가능한 해결책:
react-native-crypto: 이는 Node.js의 crypto 모듈을 React Native에서 사용할 수 있도록 포팅한 라이브러리입니다. 다만, Crypto API는 브라우저 기반이 아니므로 사용 전에 테스트가 필요합니다.
react-native-aes-crypto: AES 암호화를 위한 별도의 라이브러리로, AES-GCM 알고리즘을 지원합니다. Expo에서는 사용이 불가할 수 있으므로, 이런 경우
expo dev client또는eject후 사용해야 합니다.expo-crypto: Expo에서 crypto 사용을 위한 환경을 제공하지만, AES-GCM을 직접 지원하진 않습니다. 기본적인 해시 기능만을 제공합니다.
아래는 기존의 유사한 질문에 대한 답변입니다:
- 리액트 네이티브 암호화 라이브러리 관련 질문: 암호화와 관련하여 다양한 라이브러리를 추천하는 댓글이 있습니다.
Expo 환경에서 사용할 수 있는 라이브러리가 한정되어 있다는 점을 고려하시고, Expo의 Managed Workflow에서는 네이티브 모듈 사용이 제한적이므로 Bare Workflow로 이동을 고려하셔야 할 수도 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





감사합니다 https://reactnative.directory/ 사이트에서 검색 가능한 라이브러리라면, development build 앱 또는 배포된 앱 환경에서는 모두 호환 가능하다고 보면 될까요?