32 lines
842 B
Dart
32 lines
842 B
Dart
import 'dart:convert';
|
||
import 'package:encrypt/encrypt.dart' as enc;
|
||
|
||
/// AES/ECB/PKCS5Padding 加密
|
||
String aesEncryptEcbPkcs5({
|
||
required String plainText,
|
||
String keyUtf8="daac3ae52eff4cec",
|
||
}) {
|
||
final key = enc.Key.fromUtf8(keyUtf8);
|
||
final encrypter = enc.Encrypter(enc.AES(
|
||
key,
|
||
mode: enc.AESMode.ecb,
|
||
padding: 'PKCS7', // Dart里用PKCS7,对齐Java的PKCS5
|
||
));
|
||
final encrypted = encrypter.encrypt(plainText);
|
||
return encrypted.base64;
|
||
}
|
||
|
||
/// AES/ECB/PKCS5Padding 解密
|
||
String aesDecryptEcbPkcs5({
|
||
required String cipherBase64,
|
||
required String keyUtf8,
|
||
}) {
|
||
final key = enc.Key.fromUtf8(keyUtf8);
|
||
final encrypter = enc.Encrypter(enc.AES(
|
||
key,
|
||
mode: enc.AESMode.ecb,
|
||
padding: 'PKCS7',
|
||
));
|
||
final decrypted = encrypter.decrypt(enc.Encrypted.fromBase64(cipherBase64));
|
||
return decrypted;
|
||
} |