Aes加密解密
- 依赖包:
- encrypt: ^5.0.1
- flustars: ^2.0.1
- 环境:
- Flutter (Channel stable, 2.2.3, on Microsoft Windows [Version 10.0.18363.1139], locale zh-CN)
* Name:jh_encrypt_utils.dart
*
* Time:Created by iotjin on 2021/09/23.
* ConText:description: base64 , aes加解密(CBC/PKCS7)
*/
/// 引用上下文
import 'dart:convert';
///引用插件
import 'package:encrypt/encrypt.dart';
import 'package:flustars/flustars.dart';
///定义秘钥
var _KEY = "0123456789becoin";
///定义偏移量
var _IV = "0123456789becoin";
//128的keysize=16,192keysize=24,256keysize=32
class JhEncryptUtils {
//Base64编码
static String encodeBase64(String data) {
return base64Encode(utf8.encode(data));
}
//Base64解码
static String decodeBase64(String data) {
return String.fromCharCodes(base64Decode(data));
}
// md5 加密 32位小写
static String encodeMd5(String plainText) {
return EncryptUtil.encodeMd5(plainText);
}
//AES加密
static aesEncrypt(plainText) {
try {
final key = Key.fromUtf8(_KEY);
final iv = IV.fromUtf8(_IV);
/// 这里可以配置类型,
final encrypter = Encrypter(AES(key, mode: AESMode.cbc));
final encrypted = encrypter.encrypt(plainText, iv: iv);
return encrypted.base16;
} catch (err) {
print("aes encode error:$err");
return plainText;
}
}
//AES解密
static dynamic aesDecrypt(encrypted) {
try {
final key = Key.fromUtf8(_KEY);
final iv = IV.fromUtf8(_IV);
final encrypter = Encrypter(AES(key, mode: AESMode.cbc));
final decrypted = encrypter.decrypt16(encrypted, iv: iv);
return decrypted;
} catch (err) {
print("aes decode error:$err");
return encrypted;
}
}
}
食用方法
/*
* 调用加密方法
*/
var deStr = JhEncryptUtils.aesEncrypt(data.toString())
/*
* 调用解密方法
*/
var enStr = JhEncryptUtils.aesDecrypt(data.toString())