import 'package:encrypt/encrypt.dart' as encrypt; import 'package:flutter/foundation.dart'; import '../../env/env.dart'; var secretKey = Env.keyOfApp .toString() .split('XrXlBl')[0]; // Must be 16 characters for AES-128 const initializationVector = 'abcdefghijklmnop'; // Must be 16 characters final encryptionHelper = EncryptionHelper( secretKey: secretKey, initializationVector: initializationVector, ); class EncryptionHelper { final encrypt.Key key; final encrypt.IV iv; EncryptionHelper( {required String secretKey, required String initializationVector}) : key = encrypt.Key.fromUtf8(secretKey), iv = encrypt.IV.fromUtf8(initializationVector); // Initialize the helper /// Encrypts the given plain text String encryptData(String plainText) { try { final encrypter = encrypt.Encrypter(encrypt.AES(key, mode: encrypt.AESMode.cbc)); // Explicitly use CBC mode final encrypted = encrypter.encrypt(plainText, iv: iv); return encrypted.base64; } catch (e) { debugPrint('Encryption Error: $e'); return ''; } } /// Decrypts the given encrypted text String decryptData(String encryptedText) { try { final encrypter = encrypt.Encrypter(encrypt.AES(key, mode: encrypt.AESMode.cbc)); // Explicitly use CBC mode final encrypted = encrypt.Encrypted.fromBase64(encryptedText); final decrypted = encrypter.decrypt(encrypted, iv: iv); return decrypted; } catch (e) { debugPrint('Decryption Error: $e'); return ''; } } }