Flutter AES ECB PKCS5 加密解密插件flutter_aes_ecb_pkcs5_fork的使用
Flutter AES ECB PKCS5 加密解密插件 flutter_aes_ecb_pkcs5_fork
的使用
Null Safety 支持
分叉包 flutter_aes_ecb_pkcs5_fork
解决了 Null Safety 支持问题。
AES 128 PKCS5 支持
该插件仅支持 AES 128 PKCS5,并提供了以下功能:
- 生成 AES 密钥
- 加密 AES 密钥
- 解密 AES 密钥
- Android 使用 Java 开发,iOS 使用 Objective-C 开发
使用方法
使用此包作为库:
-
添加依赖 在你的
pubspec.yaml
文件中添加以下依赖项:dependencies: flutter_aes_ecb_pkcs5_fork: ^0.1.4
-
安装依赖 你可以通过命令行安装包:
$ flutter pub get
或者,你的编辑器可能支持自动获取包。查阅你的编辑器文档了解更多信息。
-
导入包 在你的 Dart 代码中导入包:
import 'package:flutter_aes_ecb_pkcs5_fork/flutter_aes_ecb_pkcs5_fork.dart';
AES 使用示例
import 'package:flutter_aes_ecb_pkcs5_fork/flutter_aes_ecb_pkcs5_fork.dart';
void main() async {
var data = "{\"username\":\"helloword\"}";
// 生成一个 16 字节的随机密钥
var key = await FlutterAesEcbPkcs5.generateDesKey(128);
print("生成的密钥: $key");
// 加密数据
var encryptText = await FlutterAesEcbPkcs5.encryptString(data, key);
print("加密后的文本: $encryptText");
// 解密数据
var decryptText = await FlutterAesEcbPkcs5.decryptString(encryptText, key);
print("解密后的文本: $decryptText");
}
运行示例结果
生成的密钥: DA8FD2693B652D587EEE51E7ADD9DBB8
加密后的文本: 851544E224F6C1C7F560AB82889DE0DF66EEB6762AB836F4EE13E31100F0EA16
解密后的文本: {"username":"helloword"}
许可证
该插件采用 MIT 许可证(详情见:http://opensource.org/licenses/MIT)。
请自由使用并贡献于该项目的发展。
完整示例 Demo
以下是完整的示例代码,展示如何在 Flutter 应用程序中使用 flutter_aes_ecb_pkcs5_fork
插件进行 AES 加密和解密。
import 'package:flutter/material.dart';
import 'dart:async';
import 'package:flutter_aes_ecb_pkcs5_fork/flutter_aes_ecb_pkcs5_fork.dart';
void main() => runApp(const MyApp());
class MyApp extends StatefulWidget {
const MyApp({Key? key}) : super(key: key);
[@override](/user/override)
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
String _platformVersion = 'Unknown';
[@override](/user/override)
void initState() {
super.initState();
initPlatformState();
}
// 平台消息异步处理,初始化状态
Future<void> initPlatformState() async {
String pkcs5Progress;
// 字符串格式数据
var data = "{\"username\":\"helloword\"}";
// 创建 16 字节随机密钥
var key = await FlutterAesEcbPkcs5.generateDesKey(128);
// 加密数据
var encryptText = await FlutterAesEcbPkcs5.encryptString(data, key);
// 解密数据
var decryptText = await FlutterAesEcbPkcs5.decryptString(encryptText, key);
pkcs5Progress = "data:" +
data +
"\n" +
"创建密钥:" +
key +
"\n" +
"加密文本:" +
encryptText +
"\n" +
"解密文本:" +
decryptText +
"\n";
// 如果小部件在异步平台消息处理过程中被从树中移除,则丢弃回复而不是调用
if (!mounted) return;
setState(() {
_platformVersion = pkcs5Progress;
});
}
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('flutter_aes_ecb_pkcs5'),
),
body: Center(
child: Text('PKCS5 进度:\n $_platformVersion\n'),
),
),
);
}
}
更多关于Flutter AES ECB PKCS5 加密解密插件flutter_aes_ecb_pkcs5_fork的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter AES ECB PKCS5 加密解密插件flutter_aes_ecb_pkcs5_fork的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在Flutter中使用flutter_aes_ecb_pkcs5_fork
插件进行AES ECB PKCS5加密和解密时,首先需要确保你已经将该插件添加到了你的Flutter项目中。你可以通过以下步骤来实现这一点:
- 添加依赖:在你的
pubspec.yaml
文件中添加flutter_aes_ecb_pkcs5_fork
依赖。
dependencies:
flutter:
sdk: flutter
flutter_aes_ecb_pkcs5_fork: ^最新版本号 # 请替换为实际可用的最新版本号
-
安装依赖:运行
flutter pub get
来安装新添加的依赖。 -
导入插件:在你的Dart文件中导入该插件。
import 'package:flutter_aes_ecb_pkcs5_fork/flutter_aes_ecb_pkcs5_fork.dart';
以下是一个简单的代码示例,展示了如何使用flutter_aes_ecb_pkcs5_fork
插件进行AES ECB PKCS5加密和解密:
import 'package:flutter/material.dart';
import 'package:flutter_aes_ecb_pkcs5_fork/flutter_aes_ecb_pkcs5_fork.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
String? encryptedText;
String? decryptedText;
final String key = '1234567890123456'; // 16字节的密钥
final String plainText = 'Hello, Flutter!';
@override
void initState() {
super.initState();
// 加密
encrypt(plainText!, key);
}
Future<void> encrypt(String text, String key) async {
try {
String encrypted = await FlutterAesEcbPkcs5Fork.encrypt(text, key);
setState(() {
encryptedText = encrypted;
// 解密
decrypt(encrypted, key);
});
} catch (e) {
print('加密失败: $e');
}
}
Future<void> decrypt(String encryptedText, String key) async {
try {
String decrypted = await FlutterAesEcbPkcs5Fork.decrypt(encryptedText, key);
setState(() {
decryptedText = decrypted;
});
} catch (e) {
print('解密失败: $e');
}
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('AES ECB PKCS5 加密解密示例'),
),
body: Padding(
padding: const EdgeInsets.all(16.0),
child: Column(
children: [
Text('原文: $plainText'),
if (encryptedText != null)
Text('加密后: $encryptedText'),
if (decryptedText != null)
Text('解密后: $decryptedText'),
],
),
),
),
);
}
}
在这个示例中,我们创建了一个简单的Flutter应用,它会在初始化时自动对一段文本进行AES ECB PKCS5加密,并随后对加密后的文本进行解密。加密和解密的结果会显示在应用的界面上。
请确保在实际应用中妥善处理密钥管理,不要将密钥硬编码在客户端代码中,并考虑使用安全的密钥存储方案。同时,AES ECB模式虽然简单,但在某些情况下可能不够安全,建议根据具体需求选择合适的加密模式。