encryptData function
Implementation
String? encryptData(dynamic data, String key) {
if (data == null) return null;
final plain = data is String ? data : jsonEncode(data);
if (key.isEmpty) {
throw ArgumentError('Se requiere una clave (key) para encriptar.');
}
final keyBytes = utf8.encode(key);
if (keyBytes.length != 16 && keyBytes.length != 32) {
throw ArgumentError(
'La clave debe tener 16 (AES-128) o 32 (AES-256) caracteres.');
}
final encrKey = encrypt.Key(Uint8List.fromList(keyBytes));
final aes = encrypt.AES(
encrKey,
mode: encrypt.AESMode.ecb,
padding: 'PKCS7',
);
final encrypter = encrypt.Encrypter(aes);
final encrypted = encrypter.encrypt(plain, iv: null);
return encrypted.base64;
}