需求:flutter aes加密代码,在仓库中找到encrypt工具包,源码在github,经过一番尝试发现aes mode没有需要的cfb8。需要改造依赖包,然后发布依赖。

从 github拉取原encrypt包代码

改造代码

aes.dart文件


enum AESMode {
  cbc,
  cfb64,
  ctr,
  ecb,
  ofb64Gctr,
  ofb64,
  sic,
  cfb8
}

const Map<AESMode, String> _modes = {
  AESMode.cbc: 'CBC',
  AESMode.cfb64: 'CFB-64',
  AESMode.ctr: 'CTR',
  AESMode.ecb: 'ECB',
  AESMode.ofb64Gctr: 'OFB-64/GCTR',
  AESMode.ofb64: 'OFB-64',
  AESMode.sic: 'SIC',
  AESMode.cfb8: 'CFB-8',
};


添加AESMode.cfb8: 'CFB-8',

修改项目名称pubspec.yaml
name: encryptplus

创建pub.dev账户

使用代理,科学上网
https://pub.dev/
点击登录、注册。
需要一个域名 yuwb.pub
按照谷歌账号指示,添加dns域名解析。
验证成功后创建成功。

终端配置代理

export https_proxy=http://127.0.0.1:4780
export http_proxy=http://127.0.0.1:4780
set https_proxy=https://127.0.0.1:4780
set http_proxy=http://127.0.0.1:4780

非全局代理,4780为代理端口,替换成自己的。
使其能访问谷歌账号

项目终端登录

pub login
image.png

项目发布

flutter packages pub publish --server=https://pub.dartlang.org
image.png

发布成功后

image.png

其他flutter项目中添加依赖即可使用

dependencies:
  encryptplus: 5.0.2
import 'package:encryptplus/encrypt.dart' as encrypt;

  final encrypter = encrypt.Encrypter(encrypt.AES(key,mode: encrypt.AESMode.cfb8, padding :null));