flutter如何实现AES加密
“在Flutter中如何实现AES加密?希望能提供一个完整的示例代码,包括密钥生成、加密和解密的步骤。另外,需要注意哪些安全事项?”
        
          2 回复
        
      
      
        使用encrypt包实现AES加密。步骤如下:
- 添加依赖:encrypt: ^5.0.1
- 导入包:import 'package:encrypt/encrypt.dart';
- 使用AES加密:
final key = Key.fromUtf8('32位密钥');
final iv = IV.fromUtf8('16位初始向量');
final encrypter = Encrypter(AES(key));
final encrypted = encrypter.encrypt('明文', iv: iv);
print(encrypted.base64); // 输出Base64编码的密文
更多关于flutter如何实现AES加密的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在Flutter中实现AES加密,可以使用 encrypt 包。以下是完整示例:
- 添加依赖
在 pubspec.yaml中添加:
dependencies:
  encrypt: ^5.0.1
- 实现代码
import 'package:encrypt/encrypt.dart';
// AES加密
String aesEncrypt(String plainText, String key) {
  final encKey = Key.fromUtf8(key.padRight(32)); // 密钥需为32字节
  final iv = IV.fromLength(16); // 初始化向量
  
  final encrypter = Encrypter(AES(encKey));
  final encrypted = encrypter.encrypt(plainText, iv: iv);
  
  return encrypted.base64;
}
// AES解密
String aesDecrypt(String encryptedText, String key) {
  final encKey = Key.fromUtf8(key.padRight(32));
  final iv = IV.fromLength(16);
  
  final encrypter = Encrypter(AES(encKey));
  final decrypted = encrypter.decrypt64(encryptedText, iv: iv);
  
  return decrypted;
}
// 使用示例
void main() {
  final key = 'my32lengthsupersecretnooneknows1'; // 32字节密钥
  final plainText = 'Hello World';
  
  final encrypted = aesEncrypt(plainText, key);
  print('加密后: $encrypted');
  
  final decrypted = aesDecrypt(encrypted, key);
  print('解密后: $decrypted');
}
重要说明:
- 密钥长度必须为16/24/32字节(对应AES-128/192/256)
- 建议使用安全随机数生成密钥和IV
- 生产环境应将密钥存储在安全位置(如Keychain/Keystore)
- 可配合Base64编码处理二进制数据
此方案支持CBC模式(默认),如需其他模式可在AES()构造函数中指定。
 
        
       
             
             
            

