首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Dart中用AES ECB加密二进制数组

在Dart中用AES ECB加密二进制数组
EN

Stack Overflow用户
提问于 2019-02-20 22:44:50
回答 1查看 747关注 0票数 0

我正在寻找一种在Dart中加密二进制数组的方法。我看过一些更常用的库,比如https://pub.dartlang.org/packages/encrypt,但它们中的许多都只能处理字符串形式的密钥和数据,而不能处理二进制数组。

我也看过https://github.com/PointyCastle/pointycastle,它似乎能够处理二进制数组中的AES密钥和数据,但我不太清楚如何正确使用它。包含数据的二进制数组的长度始终与键的长度相同,因此它不需要任何填充。

这是我到目前为止的代码:

代码语言:javascript
运行
复制
class Encr {
    static List<int> encrCmd(List<int> inputData, List<int> aesKey) {

        Uint8List keyList = Uint8List.fromList(aesKey);
        Uint8List dataList = Uint8List.fromList(inputData);

        CipherParameters cip = new PaddedBlockCipherParameters(newKeyParameter(keylist), null);
        BlockCipher cipherImpl = new BlockCipher("AES/ECB");
        cipherImpl.init(true, cip);
        Uint8List encrypted = cipherImpl.process(dataList);
        print("encrypted data: " + encrypted.toString());
        }
}

这将导致以下错误消息:

代码语言:javascript
运行
复制
I/flutter (55555): The following assertion was thrown while handling a gesture:
I/flutter (55555): type 'PaddedBlockCipherParameters<KeyParameter, Null>' is not a subtype of type 'KeyParameter' of 'params'

不幸的是,关于如何使用PointyCastle的信息并不多。有没有更好的方法来实现我想要的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-20 23:42:33

您不需要PaddedBlockCipherParameters,因为您没有使用填充密码。

尝试:

代码语言:javascript
运行
复制
import 'dart:typed_data';

import 'package:pointycastle/api.dart';
import 'package:pointycastle/block/aes_fast.dart';
import 'package:pointycastle/block/modes/ecb.dart';

main() {
  Uint8List key = Uint8List.fromList(
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],
  );

  Uint8List plainText = Uint8List.fromList(
    [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16],
  );

  BlockCipher cipher = ECBBlockCipher(AESFastEngine());

  cipher.init(
    true,
    KeyParameter(key),
  );
  Uint8List cipherText = cipher.process(plainText);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54788955

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档