[React Native/JS] CryptoJS AES 실무에서 사용하기
리액트 네이티브에서 cryptojs 사용하기 plan text , clear text : 원래 값 encrypt , cipher text : 암호화 decrypt : 복호화 복호화는 암호화의 역과정. (즉 암호화를 풀어서 plan text로 읽히게 해주는 것) 설..
coding-heesong.tistory.com
1. 첫 페이지 로드시 로컬스토리지 값이 있나 없나 체크 하는 init() 함수 만들기
2. 조건 충족 시 handleSubmit 이벤트핸들러 동작 시키기
1.
useEffect(()=>{
    init();
}, [])const init = async () => {
    const ciphertext = await AsyncStorage.getItem("@Bank");
    // 로컬스토리지 값 체크
    if(ciphertext != null) {
        // 값이 있으면 복호화해서 저장
        const bytes = CryptoJS.AES.decrypt(ciphertext, BANK_KEY); // BANK_KEY는 상수로 담겨있다.
        const originaltext = bytes.toString(CryptoJS.enc.Utf8);
        // 복호화한 값을 객체에 저장
        const { bankAccountNo, bankName, bankOwner } = JSON.parse(originalText);
        // 스테이트 값 업데이트
        setReceivingInsurance({ bankAccountNo, bankName, bankOwner });
        // 변경되었다고 알려주기 추후 handleSubmit에서 변경 감지에 사용됨
        setChecked(true);
    }
}2.
const handleSubmit = async () => {
  if (checked) { // 스테이트 값이 업데이트 되었다면
    // 값을 다시 암호화해서
    const ciphertext = CryptoJS.AES.encrypt(JSON.stringify(receivingInsurance), BANK_KEY).toString();
    // 앱 로컬스토리지에 다시 저장한다.
    await AsyncStorage.setItem('@Bank', ciphertext);
  }
  // 전역 상태 관리 값에도 값을 넣어서 전체적으로 관리해준다.
  claimRequestVar({ ...claimRequest, receivingInsurance: { ...claimRequest.receivingInsurance, ...receivingInsurance } });
  // 완료 되었으면 라우터 이동
  navigation.navigate('다음페이지');
};'coding > react native' 카테고리의 다른 글
| [React Native] IOS, Android facebook ATT SDK 설정하기 (0) | 2021.09.08 | 
|---|---|
| [React Native] Gradle build와 task (0) | 2021.09.07 | 
| [React Native] jdk8 build error (0) | 2021.09.03 | 
| [React Native] The minCompileSdk (31) specified in a... 빌드 에러 (0) | 2021.09.03 | 
| [React Native/JS] CryptoJS AES 실무에서 사용하기 (0) | 2021.04.15 | 
 
														
													
댓글