Flutter 如何在Dart中使用PKCS5填充密钥生成256-AES CBC密钥

Flutter 如何在Dart中使用PKCS5填充密钥生成256-AES CBC密钥,flutter,encryption,dart,aes,Flutter,Encryption,Dart,Aes,我需要弄清楚如何为我的颤振项目在Dart中生成带有PKCS5填充的随机256 AES CBC密钥。我已经能够通过以下方式在Java中实现: public静态SecretKey generateSecretKey(){ 键发生器; 试一试{ generator=KeyGenerator.getInstance(“AES/CBC/pkcs5pAdd”); generator.init(256);//AES密钥大小,以位为单位(256) 返回生成器.generateKey(); }捕获(无算法异常){

我需要弄清楚如何为我的颤振项目在Dart中生成带有PKCS5填充的随机256 AES CBC密钥。我已经能够通过以下方式在Java中实现:

public静态SecretKey generateSecretKey(){
键发生器;
试一试{
generator=KeyGenerator.getInstance(“AES/CBC/pkcs5pAdd”);
generator.init(256);//AES密钥大小,以位为单位(256)
返回生成器.generateKey();
}捕获(无算法异常){
e、 printStackTrace();
}
返回null;
}
在dart中,我使用PointyCastle实现了这一点(已中断/未完成的代码)

static generateScretKey(){
AESFastEngine aes=AESFastEngine();
KeyParameter KeyParameter=KeyParameter();
aes.init(真,关键参数);
CbcLockCipher cbc=CbcLockCipher(aes);
}
我使用RSA 4096密钥交换AES 256密钥。在客户端,我只使用公钥加密生成的AES密钥


显然,dart为您提供了以下功能:


这似乎是生成AES 256位密钥的一个很好的解决方案。

密钥没有相关的填充概念。在调用
KeyGenerator.getInstance(“AES/CBC/PKCS5Padding”)中Java必须简单地忽略
AES
部分之后的所有内容,因为它们都没有意义<代码>“AES/CBC/PKCS5Padding”
只在
Cipher.getInstance()中有意义。啊,我明白了。我想我只是复制并粘贴了“”AES/CBC/pkcs5p“从我的密码代码来看,我不熟悉PointyCastle,但BouncyCastle似乎没有生成AES密钥的方法。您已经使用您的平台的加密安全随机数生成器自己生成了它们,然后将其提供给
KeyParameter
构造函数。我该怎么做呢?使用特定于平台的代码,如?dart显然为您提供了以下功能: