# 密码管理系统 **Repository Path**: zekdot/password_management_system ## Basic Information - **Project Name**: 密码管理系统 - **Description**: 小型密码管理系统,离线加密后将密码像普通数据一样进行存储 - **Primary Language**: Java - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 5 - **Forks**: 4 - **Created**: 2019-12-29 - **Last Updated**: 2024-05-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 密码管理系统 ## 介绍 小型密码管理系统,离线加密后将密码像普通数据一样进行存储,即由设定的密钥保证密码的隐私性,未来将考虑使用更加方便的加密方式,输入密码还是有些繁琐了。 实现使用前后端分离方式,`database`中存放的为数据表的创建文件,在mysql中执行。`page`中存放的为前端文件,需要部署在nginx等服务器中。`src`中存储的为后端文件,打包之后运行即可。 系统的设计支持多用户使用,但在实际使用中,发现密码这种涉及隐私的部分只有部署人会高频使用,因此可以进行配置来跳过登录页面,即单用户模式。便捷性带来的是风险,在单用户模式下,禁用了密码的删除功能,但是仍然可以任意插入新密码,恶意用户可能向数据库中插入大量垃圾密码数据。之后的快速开始暂时使用多用户模式进行说明。 ## 快速开始 ### 数据表准备 在MySQL中进行如下操作,数据库名、用户名、密码等按照自己情况进行修改 1. 创建数据库z_password。 2. 创建用户名为z_pass_admin,密码为123456的用户,并给该用户z_password的所有权限。 3. 执行`database`中的建表sql。 4. 创建系统使用用户(未来添加新用户暂时都只能手动添加) 如用户名为zekdot,密码为123456,使用如下SQL语句 ```mysql INSERT INTO z_password.user(username, password) VALUES('zekdot', MD5(CONCAT('zekdot', '123456'))); ``` ### 部署后台 首先根据自己的情况修改`application.properties`,放在运行目录中。 将项目中的后台文件打包为jar包,如文件名为`password.jar`,将其放在`application.properties`同目录下,即运行目录,这样就可以使用自己修改的配置。 ```sh java -jar passsword.jar ``` 启动后在机器中使用如下命令验证是否成功启动: ```sh curl -X POST 'localhost:9010/user/login?username=xxx&password=xxx' ``` 当打印如下内容说明启动成功: ``` {"code":1,"message":"用户不存在"} ``` ### 部署前台 将`page`在nginx中进行配置,并将端口开放于9009。 当在浏览器中访问 IP+`:9009`,如果能看到登录界面说明部署成功。 ## 使用 ### 登录 访问登录页面,输入之前在数据库中增加使用用户的用户名和密码。 ![](img/1.png) ### 增加密码 首先确保key处已经填写了密钥(密钥需要为16位以上,否则解开密码时可能为空白),然后点击`Add`按钮。 ![](img/2.png) ### 解锁密码 首先确保key处已经填写了密钥,将鼠标移动到password处则可以成功解锁。 ![](img/3.png)