《safe+》离线密码更安全,一键修改最方便

针对当前密码管理软件的不足,本文介绍了《safe+++》系列之一的key+。它包括两个部分:key+store用于离线管理密码,确保密码安全;key+change用于在线一键更新所有账户密码。此外还提供了密码强度检测、自动生成高强度密码等功能。

和之前的《clip+》《key+》一样,《safe+》是《[data+++]保护个人隐私的安全套装》系列的一部分,你可以从头阅读以获取这一系列工具的设计思想。

 

接下来的对话发生在我和一个朋友间,可以帮你尽快的了解key+的设计动机。

 

你注册过多少网站或应用软件?

-- 很多。

 

每个账号的密码都是不同的吗?

-- 哪里有那么好的脑子...有相同的,但也有很多不同的,我自有一套策略,不过经常记混...

 

有听说过密码管理软件么?

-- 1password、onekey、ipassSafe等等听说过一些

 

用过么?

-- 妹,要么太贵,要么联网。联网的总是不安全的,天知道他们是不是安了后门,或是被人打劫了却不告诉我?

 

貌似有离线密码管理工具的,并且是免费的

-- 老的掉牙了,移动端几乎没有,还不如我用云笔记或者干脆记本子上呢~

 

其他需求呢?

-- 如果能一键修改所有账户的密码就好了,这样我就省的一个一个的修改了。

 

 

关于密码管理软件《key+》,一个大体的需求框架理出来了,大概是如下这个样子的:

 

  • 一个密码管理所有密码

  • 密码库加密存储在本地

  • 密码库可导出和导入

  • 密码强度检测及建议

  • 自动生成高强度密码

  • 跨平台

  • 密码管理功能离线

  • 一键更改功能在线

 

这其中前面几个还可以理解,最后两个功能又是在线又是离线的让人不清楚是如何运作的,现在解释一下:

 

  1. 首先key+是分离式的,可以认为是两个软件,姑且叫做key+store和key+change

  2. key+store负责了绝大部分的密码管理工作,离线式设计保证了密码不会在传输中出现意外,在Android系统中你会发现,它只要求了简单的写sd卡等权限

  3. key+change则用来一键修改所有账户密码的,在运行过程中,它会要求用户提供主密码(也就是第一个功能中的“一个密码”)来完成密码库的读写

  4. 当然用户如果不信任key+change,那么可以只用key+store即可,这样满足了两部分人的需求

 

一句话总结:如果把账户密码比作金鱼的话,那么safe+就是鱼缸,并且还可以变魔术:改变鱼身颜色!

 

关于付费增值,和用户密码相关的部分,我想就不要染指了。

 

that's all,接下来我们会介绍cloud+。

 

 

 

转载于:https://my.oschina.net/bbdlg/blog/671146

<think>嗯,用户想创建一个包含JavaFX应用、JDK/JRE和MySQL的跨平台一键安装包。首先,我需要理解他们的需求。他们希望用户能够轻松安装,不需要预先安装JDK或者MySQL,对吧?所以安装包需要内嵌这些依赖,并且跨平台支持Windows、macOS和Linux。 首先,我应该考虑打包工具。之前用户提到的exe4j只能生成Windows的EXE文件,但跨平台的话可能需要其他工具。记得引用[2]里提到了Electron、QT、JavaFX这些跨平台方案,但这里用户已经用JavaFX了,所以需要打包工具支持多平台。 然后,JDK/JRE的捆绑。Java 9以后的jlink工具可以创建自定义运行时,这样可以把必要的模块打包进去,减少体积。或者使用jpackage,它是JDK自带的,能生成原生安装包,支持多个平台。jpackage可能是个好选择,因为它直接集成在JDK里,而且可以打包应用和JRE。 接下来是MySQL的问题。MySQL通常需要单独安装,但用户希望一键安装,所以可能需要将MySQL嵌入到应用中。可以考虑使用嵌入式数据库,比如H2或者MariaDB的嵌入式版本。不过用户明确提到MySQL,所以可能需要打包MySQL社区版,并在安装过程中自动安装配置。或者,使用Docker容器来运行MySQL,但这样会增加依赖,用户需要安装Docker,这可能不太方便。 然后,安装包制作工具。对于跨平台安装,可能需要不同的工具来处理各系统的打包。例如,Windows用Inno Setup,macOS用pkgbuild,Linux用deb/rpm。但用户想要一键安装,跨平台的,所以需要统一工具。可能推荐的工具是Install4j,它支持多平台安装包,并且可以包含JRE和第三方服务如MySQL。另外,IzPack也是一个选择,但配置可能复杂些。或者,jpackage结合脚本处理MySQL的安装。 步骤可能包括:1. 使用jlink/jpackage打包JavaFX应用和JRE;2. 集成MySQL的安装脚本或嵌入式版本;3. 使用安装包工具将所有东西打包成各平台的安装程序;4. 测试安装流程是否自动配置好数据库。 需要确保MySQL在安装过程中自动启动,并创建所需的数据库和用户。可能需要编写脚本,在安装后执行初始化操作。对于跨平台,脚本需要兼容不同系统,或者安装工具支持条件判断和执行不同脚本。 另外,引用[1]提到exe4j可以打包EXE并包含JDK,但仅限于Windows。用户需要跨平台,所以exe4j不合适。引用[2]提到JavaFX作为选项,所以继续使用JavaFX是正确的。引用[3]的MyBatis可能不相关,但用户可能已经在用,所以打包时需要考虑相关配置。 总结,可能的解决方案是使用jpackage打包应用和JRE,然后使用Install4j来创建安装包,里面包含应用、JRE和MySQL的安装脚本。或者,使用Docker Compose来编排应用和MySQL,但需要用户安装Docker,这可能不符合“一键安装”的要求。 需要进一步考虑如何将MySQL打包进去。或许在安装过程中下载MySQL社区版并静默安装,或者将MySQL的可执行文件打包进去,然后通过脚本启动。但需要注意许可问题,MySQL的GPL协议是否允许再分发。 后,测试各个平台的安装包是否正常工作,确保数据库自动配置,应用能够连接。可能还需要处理不同系统的路径问题,比如Windows的Program Files,Linux的/opt等。</think>### 分步解决方案:创建跨平台JavaFX一键安装包 #### 一、工具选择与核心思路 1. **JavaFX应用打包** 使用 **JDK自带的jpackage工具**[^1],将JavaFX应用和JRE捆绑生成原生安装包(支持Windows/MSI、macOS/DMG、Linux/DEB/RPM)。 2. **MySQL集成方案** - **方案一(推荐)**:使用嵌入式数据库如**H2**或**SQLite**替代MySQL,简化部署。 - **方案二**:在安装包中捆绑MySQL社区版,通过脚本控制安装和初始化[^2]。 3. **跨平台安装包工具** - **Install4j**(商业工具):支持多平台安装包生成,可集成JRE、MySQL安装脚本和依赖库[^1]。 - **IzPack**(开源):需配合自定义脚本实现复杂逻辑。 --- #### 二、详细操作步骤(以Install4j为例) ##### 1. 准备JavaFX应用 - 确保项目为可执行JAR(Maven/Gradle构建时配置`<mainClass>`)。 - 使用`jlink`生成小化JRE: ```bash jlink --add-modules java.base,javafx.controls,javafx.fxml --output ./custom-jre ``` ##### 2. 配置Install4j 1. **新建项目** 选择目标平台(Windows、macOS、Linux),设置应用名称、版本。 2. **添加JAR和JRE** - 主JAR文件:导入JavaFX生成的JAR。 - 捆绑JRE:选择`custom-jre`目录或让Install4j自动下载。 3. **集成MySQL** - **方法一(嵌入式)**:将H2/SQLite驱动加入依赖,代码中配置内存数据库。 - **方法二(独立MySQL)**: - 在安装包中添加MySQL安装文件(如Windows的`.msi`,Linux的`.tar.gz`)。 - 编写启动脚本自动执行MySQL安装和初始化: ```bash # Linux/macOS示例 tar -xzf mysql-8.0.33-linux-glibc2.12-x86_64.tar.gz ./mysql-8.0.33/bin/mysqld --initialize-insecure ./mysql-8.0.33/bin/mysqld_safe & ``` 4. **配置安装流程** - 添加文件释放操作:将MySQL和JAR释放到目标目录。 - 添加“运行脚本”动作:执行数据库初始化命令。 - 设置环境变量(如`JAVA_HOME`、数据库连接参数)。 ##### 3. 构建安装包 - 生成多平台安装文件(如Windows的EXE、macOS的APP、Linux的SH)。 - 测试安装流程是否自动启动应用和数据库。 --- #### 三、替代方案与优化 1. **使用Docker容器化** - 编写`Dockerfile`包含JavaFX应用、OpenJDK和MySQL: ```dockerfile FROM openjdk:17-jdk COPY ./app.jar /app/ RUN apt-get update && apt-get install -y mysql-server CMD service mysql start && java -jar /app/app.jar ``` - 用户需安装Docker后执行`docker-compose up`启动。 2. **jpackage + 脚本扩展** - 用jpackage生成基础安装包,添加Post-Install脚本启动MySQL: ```bash # jpackage配置示例 jpackage --name MyApp --input ./lib --main-jar app.jar \ --runtime-image ./custom-jre \ --install-dir /opt/MyApp \ --post-install-script ./setup_mysql.sh ``` --- #### 四、注意事项 1. **许可合规性** - MySQL社区版遵循GPL协议,需在安装包中声明。 2. **安装包体积** - 小化JRE(约40-60MB) + MySQL(约200MB)可能导致安装包较大。 3. **跨平台兼容性** - 针对不同系统分别测试脚本权限、路径格式和依赖项。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值