项目简介
林酱私人密码库是一款基于 Web 的密码管理工具,采用前后端分离架构,支持双因素认证(主密码 + 邮箱验证码),确保您的密码安全。
核心特性
🔐 安全认证:主密码 + 6位邮箱验证码双因素认证
🎨 精美界面:现代化 UI 设计,支持明暗主题切换
📁 分类管理:支持自定义添加、编辑、删除密码分类
🔍 快速搜索:支持按标题、用户名、URL 等关键词搜索
📱 响应式设计:适配桌面和移动设备
✨ 动态效果:流畅的动画效果,提升用户体验
技术栈
前端:HTML5 + CSS3 + JavaScript (原生)
后端:PHP 8.0+
数据库:SQLite 3
邮件服务:QQ邮箱 SMTP
截图




目录结构
password-manager/
├── index.php # 入口文件
├── assets/
│ ├── css/
│ │ ├── main.css # 主样式文件
│ │ └── variables.css # CSS 变量定义
│ └── js/
│ ├── app.js # 主应用逻辑
│ ├── api.js # API 通信层
│ └── crypto.js # 加密工具
├── api/
│ ├── config.php # 数据库配置
│ ├── auth.php # 认证 API
│ ├── passwords.php # 密码 CRUD API
│ ├── send_code.php # 发送邮箱验证码
│ └── verify_code.php # 验证邮箱验证码
└── img/
├── logo1.png # 网站 Logo
└── logo2.jpg # 登录页头像
部署教程
环境要求
PHP 8.0 或更高版本
SQLite3 扩展(PHP 默认开启)
OpenSSL 扩展(用于邮件发送)
Web 服务器:Nginx / Apache / Caddy
步骤 1:上传文件
将 password-manager 文件夹上传到服务器的网站目录。
# 示例:使用 rsync 上传
rsync -avz ./password-manager/ user@server:/var/www/password.zhihuiyun.work/步骤 2:配置目录权限
确保 Web 服务器有权限读写文件:
# 设置目录权限
chmod -R 755 /var/www/password-manager/
# 确保 SQLite 数据库文件可写
chmod 644 /var/www/password-manager/api/vault.db 2>/dev/null || true
touch /var/www/password-manager/api/vault.db
chmod 666 /var/www/password-manager/api/vault.db
步骤 3:配置 Web 服务器
Nginx 配置示例
server {
listen 443 ssl http2;
server_name password.zhihuiyun.work;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
root /var/www/password-manager;
index index.php index.html;
# 禁止访问敏感文件
location ~ /\. {
deny all;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}Apache 配置示例
在 password-manager 目录下创建 .htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
</IfModule>
<FilesMatch "\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
# 禁止访问敏感文件
<FilesMatch "^\.">
Order allow,deny
Deny from all
</FilesMatch>
步骤 4:配置邮件发送
重要:邮件发送功能需要正确配置 SMTP。
打开 api/send_code.php,找到以下配置:
// SMTP 配置
define('SMTP_HOST', 'smtp.qq.com');
define('SMTP_PORT', 465);
define('SMTP_USER', 'xxxxxxxx@qq.com'); // <-- 修改为你的发件邮箱
define('SMTP_PASS', 'xxxxxxxxxxxxxxx'); // <-- 修改为你的授权码
define('FROM_NAME', '林酱密码管理'); // <-- 修改为发件人名称
define('TO_EMAIL', 'xxxxxxx@qq.com'); // <-- 修改为你的收件邮箱如何获取 QQ 邮箱授权码
进入 设置 → 账户 → POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务
开启 SMTP 服务
点击 生成授权码(需要手机验证)
复制授权码并更新到
send_code.php
修改收件邮箱位置
在 api/send_code.php 中,找到:
define('TO_EMAIL', 'xxxxxxxxxx@qq.com'); // 第 23 行将邮箱地址改为你希望接收验证码的邮箱地址。
修改发件邮箱位置
在 api/send_code.php 中,找到:
define('SMTP_USER', 'xxxxxxxx@qq.com'); // 第 21行你的发件邮箱
define('SMTP_PASS', 'xxxxxxxxxxxxx'); // 第 22行你的授权码将发件邮箱和授权码改为你自己的 QQ 邮箱配置。
步骤 5:访问网站
完成以上配置后,访问你的域名即可开始使用。
功能使用指南
首次设置
访问网站,输入你想设置的主密码(至少6位)
确认密码后点击"创建保险箱"
系统会自动登录并进入主界面
日常登录
输入主密码
点击"发送验证码",验证码将发送到你的邮箱
在验证码输入框中输入收到的6位验证码
点击"解锁保险箱"进入系统
添加密码
点击右上角的"添加密码"按钮
填写标题、用户名、密码、网址等信息
选择或创建分类
点击保存
管理分类
在左侧分类栏点击"+"添加新分类
点击分类右侧的"✏️"编辑分类
点击"🗑️"删除分类(需先删除该分类下的密码)
切换主题
点击页面顶部的太阳/月亮图标切换明暗主题。
安全建议
使用强主密码:建议使用 12 位以上的密码,包含大小写字母、数字和特殊字符
定期更换主密码:建议每 3-6 个月更换一次
保护邮箱安全:验证码邮件发送到你的邮箱,确保邮箱密码安全
启用 HTTPS:生产环境务必使用 HTTPS 加密传输
定期备份数据:定期备份
api/vault.db文件
常见问题
Q: 验证码发送失败怎么办?
检查 PHP 是否安装了 OpenSSL 扩展
确认 SMTP 配置(邮箱地址、授权码)是否正确
检查服务器是否开放了 465 端口
查看服务器日志获取详细错误信息
Q: 如何重置主密码?
目前版本不支持自助重置主密码。如需重置,请删除 api/vault.db 文件,网站会提示重新设置主密码(但原有数据会丢失)。
Q: 数据库文件在哪里?
数据库文件位于 api/vault.db,包含所有密码和设置数据。请定期备份。
更新日志
v1.1.0 (2026-04-30)
✨ 新增双因素认证(邮箱验证码)
🎨 优化登录页面 Logo 设计
🎨 优化密码卡片布局
🎨 优化统计卡片显示
🐛 修复主题切换 BUG
🐛 修复分类编辑 BUG
v1.0.0 (2026-04-29)
🎉 初始版本发布
✨ 主密码保护
✨ 密码 CRUD 功能
✨ 分类管理
✨ 搜索功能
✨ 明暗主题切换
部署检查清单
部署前准备
已上传
password-manager文件夹到服务器域名已解析到服务器 IP
已申请并配置好 SSL 证书
服务器配置
权限配置
# 执行命令
chmod -R 755 /path/to/password-manager/
touch /path/to/password-manager/api/vault.db
chmod 666 /path/to/password-manager/api/vault.dbWeb 服务器配置
已配置 Nginx/Apache
已启用 HTTPS
已配置 PHP-FPM
已添加 URL 重写规则(如需要)
邮件配置
修改发件邮箱 (api/send_code.php)
define('SMTP_USER', 'your-email@qq.com'); // 第 14 行
define('SMTP_PASS', 'your-auth-code'); // 第 15 行
define('FROM_NAME', '你的名称'); // 第 16 行修改收件邮箱 (api/send_code.php)
define('TO_EMAIL', 'your-receive-email@qq.com'); // 第 17 行获取 QQ 邮箱授权码
设置 → 账户 → POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务
开启 SMTP 服务
生成授权码
更新
SMTP_PASS配置
功能测试
基础功能
首次访问显示设置主密码界面
主密码设置成功
登录页面正常显示
主题切换功能正常
邮件功能
点击"发送验证码"无错误
验证码邮件成功收到
验证码输入框正常工作
验证码验证成功
过期验证码正确提示
密码管理
添加密码功能正常
编辑密码功能正常
删除密码功能正常
搜索功能正常
分类管理
添加分类功能正常
编辑分类功能正常
删除分类功能正常
安全检查
HTTPS 已启用
敏感文件无法直接访问(.env, vault.db 等)
验证码文件权限正确(api/.verify_code.json)
部署完成
所有功能测试通过
已在浏览器测试各功能
已告知用户主密码和邮箱地址
已备份数据库文件
快速修复
验证码发送失败
检查 PHP OpenSSL 扩展:
php -m | grep openssl检查 465 端口:
telnet smtp.qq.com 465验证授权码:使用邮件客户端测试登录
查看 PHP 错误日志
数据库无法写入
chmod 666 /path/to/api/vault.db
chmod 777 /path/to/api/PHP 500 错误
检查 PHP-FPM 日志:
/var/log/php-fpm/error.log检查 Nginx 错误日志:
/var/log/nginx/error.log临时开启 PHP 错误显示:
ini_set('display_errors', 1);
error_reporting(E_ALL);联系支持与项目文件
项目文件:
如有问题或建议,请联系开发者。
林酱私人密码库 - 让密码管理更安全、更便捷