33 lines
No EOL
999 B
Dart
33 lines
No EOL
999 B
Dart
// ignore_for_file: depend_on_referenced_packages
|
|
|
|
import 'dart:convert';
|
|
import 'package:encrypt/encrypt.dart';
|
|
import 'package:convert/convert.dart';
|
|
import 'package:crypto/crypto.dart' as crypto;
|
|
|
|
//encrypt
|
|
String encrypt(String key, String text) {
|
|
var md5Key = md5(key);
|
|
var key32 = Key.fromUtf8(md5Key);
|
|
var iv16 = IV.fromUtf8(md5Key.substring(0, 16));
|
|
final e = Encrypter(AES(key32, mode: AESMode.cbc));
|
|
final encryptedData = e.encrypt(text, iv: iv16);
|
|
return encryptedData.base64;
|
|
}
|
|
|
|
//dycrypt
|
|
String decrypt(String key, String text) {
|
|
var md5Key = md5(key);
|
|
var key32 = Key.fromUtf8(md5Key);
|
|
var iv16 = IV.fromUtf8(md5Key.substring(0, 16));
|
|
final e = Encrypter(AES(key32, mode: AESMode.cbc));
|
|
final decryptedData = e.decrypt(Encrypted.fromBase64(text), iv: iv16);
|
|
return decryptedData;
|
|
}
|
|
|
|
String md5(String data) {
|
|
var content = Utf8Encoder().convert(data);
|
|
var md5 = crypto.md5;
|
|
var digest = md5.convert(content);
|
|
return hex.encode(digest.bytes);
|
|
} |