站点登录
This commit is contained in:
37
ln_jq_app/lib/common/login_util.dart
Normal file
37
ln_jq_app/lib/common/login_util.dart
Normal file
@@ -0,0 +1,37 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user