Aengus 的技术小筑

Aengus | Blog

Flutter 密码管理软件 Allpass 开源

2020-02-01

前言

写这个软件完全是因为自己的需求,市面上大部分的密码管理软件都是收费的,免费的Lastpass体验上总感觉有些瑕疵,于是就萌生了自己动手的想法。之前没有过安卓端开发的经验,选择Flutter是因为其跨平台的特性,没有做太多的调研便开始动手写,直到后来才发现用Flutter写工具类的软件坑很多,尤其是这种调用原生API比较多的工具(目前应用内自动填充功能也没有实现)。除此之外Flutter构建的软件体积也比较大,不过幸好release版本运行比较流畅。

目前软件的基础功能已完成,其他功能会在后续慢慢添加。

Allpass介绍

Allpass

Allpass是一款简单的私密数据管理工具,包括支持密码存储与卡片信息存储。采用Flutter构建,目前完成了针对安卓的适配。

  • 密码与卡片信息管理
  • 支持指纹解锁软件
  • AES256位加密
  • 支持从csv文件中导入或导出为csv文件
  • 支持从Chrome中导入密码
  • 支持从剪贴板中导入密码
  • 标签功能
  • 文件夹功能
  • 收藏功能
  • 备注功能
  • 密码生成器

注意

若要构建Allpass,请修改lib/utils/encrypt_util.dart中的_key(32位字符串)

作者发布的Allpass已签名。所以如果在已安装作者发布的Allpass的情况下,安装自己构建的程序,请先卸载,否则可能导致安装失败或者密码数据丢失。

软件部分截图

登录页注册页密码页
卡片页分类分类详情页
设置页关于页

下载体验

你可以在“酷安”搜索“Allpass”进行下载。

未来规划

  • WebDAV同步功能
  • 多选编辑功能
  • 自动填充
  • 自动获取网站favicon作为密码头像
  • 智能识别网址生成名称

文件结构

  • dao/ 与数据库交互层
  • model/ 密码或卡片实体类
  • pages/ 页面
  • params/ 软件相关参数
  • provider/ 状态管理
  • route/ 路由管理
  • services/ 服务管理,包括生物识别授权及路由服务
  • utils/ 工具
  • widgets/ 自定义组件

命名规范

Dart文件

  1. dart文件采用下划线命名方式;
  2. 类采取大驼峰命名法,变量、常量、函数名采用小驼峰命名法;
  3. 导包as后的名称使用小写+下划线;
  4. 导包顺序为:
    Dart SDK; flutter内的库; 第三方库; 自己的库; 相对路径引用;

数据库相关

  1. 数据库表名使用下划线命名方式,且表名开头的第一个单词为allpass
  2. 表的列名与model相同,采用小写驼峰命名方式;

仓库地址

位置地址
Githubhttps://github.com/sunyongsheng/Allpass
码云https://gitee.com/sunyongsheng/Allpass

Flutter环境

[√] Flutter (Channel stable, v1.12.13+hotfix.5, on Microsoft Windows [Version 10.0.18363.592], locale zh-CN)

[√] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
[√] Android Studio (version 3.5)

LICENSE

License