首页 > 解决方案 > 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
}

我想使用相同的加密方法在颤振中实现加密。请帮助我实现这一目标。

标签: androidflutterencryptionaesrijndael

解决方案


这就是我在颤振中实现它来加密字符串的方式。

创建一个 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 文件并调用加密/解密所需的适当方法。


推荐阅读