import 'package:encrypt/encrypt.dart'; class LoginUtil { // 定义密钥 // 对于ECB模式,我们只需要Key,不需要IV (初始化向量) static final _keyString = '915eae87951a448c86c47796e44c1fcf'; static final _key = Key.fromUtf8(_keyString); // 【核心修改】创建使用 ECB 模式的加密器实例 // 1. mode: AESMode.ecb -> 使用ECB模式,它不需要IV。 // 2. padding: 'PKCS7' -> 在encrypt库中,PKCS5和PKCS7的填充方式是兼容的。 static final _encrypter = Encrypter(AES(_key, mode: AESMode.ecb, padding: 'PKCS7')); /// AES 加密方法 static String encrypt(String plainText) { if (plainText.isEmpty) { return ''; } // 【核心修改】调用 encrypt 方法时不再需要传递 iv final encrypted = _encrypter.encrypt(plainText); // 返回Base64编码的密文,这是网络传输的标准做法 return encrypted.base64; } /// AES 解密方法 (可选,如果需要解密的话) static String decrypt(String encryptedText) { if (encryptedText.isEmpty) { return ''; } final encrypted = Encrypted.fromBase64(encryptedText); // 【核心修改】调用 decrypt 方法时不再需要传递 iv final decrypted = _encrypter.decrypt(encrypted); return decrypted; } }