android - Flutter android中的AES加密
问题描述
这是我在 android 中用 java 编写的用于加密的代码 - 我正在使用 AES 加密,使用 256 的私钥长度和 PKCS5 填充。
请让我知道如何在颤振中使用相同的加密方法。我也用过PointyCastle
,但对我不起作用。
public AES() {
cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
_key = new byte[32]; //256 bit key space
_iv = new byte[16]; //128 bit IV
}
我想使用相同的加密方法在颤振中实现加密。请帮助我实现这一目标。
解决方案
这就是我在颤振中实现它来加密字符串的方式。
创建一个 dart 文件 crypto.dart 并复制/粘贴以下内容。
import 'package:encrypt/encrypt.dart';
final aesKey = '<your key';
String encryptData(final String data)
{
final key = Key.fromUtf8(aesKey);
final iv = IV.fromUtf8(aesKey);
final aesEncrypter = Encrypter(AES(key, mode: AESMode.cbc));
final encrypted = aesEncrypter.encrypt(data, iv: iv);
return encrypted.base64;
}
// Decrypt data
String decryptData(final String encrypted)
{
final key = Key.fromUtf8(aesKey);
final iv = IV.fromUtf8(aesKey);
final aesEncrypter = Encrypter(AES(key, mode: AESMode.cbc));
final data = aesEncrypter.decrypt64(encrypted, iv: iv);
return data;
}
然后您可以导入 crypt.dart 文件并调用加密/解密所需的适当方法。
推荐阅读
- excel - 如何从剪切/删除/粘贴已在同一工作表中剪切/删除/粘贴的行中停止 Find if Then 功能
- java - 从另一个类对象访问一个类的对象
- javascript - 如何将rails数据放入javascrip数组
- asp.net - asp.net基础生命周期中render方法的实际意义是什么?
- node.js - Mongo $OR - 不返回完全匹配
- java - 使用java 8嵌套父子列表
- python - 在 python 中使用 Adobe Readers Export as text 函数
- ios - SwiftUI 仅更改当前视图的导航标题颜色
- jq - 在 jq 中,如何组合两个对象,使输出在一行中以逗号分隔?
- angular - 单独组件中的表单标签和表单输入