[flutter] 플러터(Flutter)에서 캐시 데이터 암호화 방법은?
목차
- 원하는 데이터를 암호화
- Shared Preferences를 이용한 캐시 데이터 관리
- 캐시 데이터 암호화
- 암호화된 데이터를 저장하고 불러오기
- 결론
1. 원하는 데이터를 암호화
원하는 데이터를 암호화하기 위해서는 암호화 알고리즘을 선택해야 합니다. 대표적인 암호화 알고리즘으로 AES(Advanced Encryption Standard) 알고리즘이 있습니다. 이 알고리즘을 사용하여 데이터를 암호화하고 복호화할 수 있습니다.
import 'package:encrypt/encrypt.dart';
void encryptData(String data, String key) {
final key = Key.fromUtf8('my32lengthprivatekeyyyyyyyyy');
final iv = IV.fromLength(16);
final encrypter = Encrypter(AES(key, iv));
final encryptedData = encrypter.encrypt(data);
final decryptedData = encrypter.decrypt(encryptedData);
}
2. Shared Preferences를 이용한 캐시 데이터 관리
플러터(Flutter)에서는 Shared Preferences를 사용하여 앱의 간단한 데이터를 로컬에 저장할 수 있습니다. 이를 통해 캐시 데이터를 안전하게 저장하고 관리할 수 있습니다.
import 'package:shared_preferences/shared_preferences.dart';
void saveDataToCache(String key, String data) async {
final prefs = await SharedPreferences.getInstance();
prefs.setString(key, data);
}
Future<String?> getDataFromCache(String key) async {
final prefs = await SharedPreferences.getInstance();
return prefs.getString(key);
}
3. 캐시 데이터 암호화
위에서 언급한 AES 알고리즘을 사용하여 캐시 데이터를 암호화할 수 있습니다.
4. 암호화된 데이터를 저장하고 불러오기
void saveEncryptedDataToCache(String key, String data) async {
final key = Key.fromUtf8('my32lengthprivatekeyyyyyyyyy');
final iv = IV.fromLength(16);
final encrypter = Encrypter(AES(key, iv));
final encryptedData = encrypter.encrypt(data);
final prefs = await SharedPreferences.getInstance();
prefs.setString(key, encryptedData.base64);
}
Future<String?> getDecryptedDataFromCache(String key) async {
final prefs = await SharedPreferences.getInstance();
final encryptedData = prefs.getString(key);
final key = Key.fromUtf8('my32lengthprivatekeyyyyyyyyy');
final iv = IV.fromLength(16);
final encrypter = Encrypter(AES(key, iv));
return encrypter.decrypt64(Encrypted.fromBase64(encryptedData!));
}
5. 결론
위 방법을 통해 플러터(Flutter) 앱에서 캐시 데이터를 안전하게 암호화할 수 있습니다. 이를 통해 사용자 데이터를 보호하고 민감한 정보가 노출되는 것을 방지할 수 있습니다. 데이터 보안에 대한 이러한 노력은 앱 사용자들에게 신뢰와 안전을 제공하기 위한 중요한 요소입니다.