惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Blog — PlanetScale
Blog — PlanetScale
C
Cybersecurity and Infrastructure Security Agency CISA
K
Kaspersky official blog
L
LangChain Blog
I
Intezer
N
News and Events Feed by Topic
C
Check Point Blog
MyScale Blog
MyScale Blog
I
InfoQ
Last Week in AI
Last Week in AI
腾讯CDC
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
L
LINUX DO - 热门话题
T
Threatpost
Y
Y Combinator Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
H
Help Net Security
The GitHub Blog
The GitHub Blog
V
Vulnerabilities – Threatpost
NISL@THU
NISL@THU
云风的 BLOG
云风的 BLOG
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
A
About on SuperTechFans
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Martin Fowler
Martin Fowler
P
Privacy International News Feed
AWS News Blog
AWS News Blog
Simon Willison's Weblog
Simon Willison's Weblog
S
Securelist
T
Tor Project blog
C
CERT Recently Published Vulnerability Notes
Scott Helme
Scott Helme
A
Arctic Wolf
有赞技术团队
有赞技术团队
博客园 - 三生石上(FineUI控件)
T
Tenable Blog
The Hacker News
The Hacker News
博客园_首页
Cisco Talos Blog
Cisco Talos Blog
Spread Privacy
Spread Privacy
Microsoft Security Blog
Microsoft Security Blog
N
News and Events Feed by Topic
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
V
V2EX
G
Google Developers Blog
Webroot Blog
Webroot Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
WordPress大学
WordPress大学
P
Palo Alto Networks Blog
T
Threat Research - Cisco Blogs

小林酱博客

Moments 极简朋友圈 + iPhone 16 Pro 网页模拟完整实现 - 小林酱博客 AI 做 PPT,真正好用的流程不是“生成”,而是“可编辑” - 小林酱博客 做了一份30分钟从零落地:微信小程序设计规范Skill - 小林酱博客 - 记录生活-专注于自媒体分享 全能在线视频下载平台-任意网站极速视频下载器-支持抖音、小红书、B站、快手、YouTube、TikTok、Instagram、Facebook、Twitter 等 - 小林酱博客 - 记录生活-专注于自媒体分享 微信对话生成器 - 抖音微信聊天记录视频制作工具 - 小林酱博客 OpenClaw vs QwenPaw: AI 个人助理对比 - 小林酱博客 21.1k stars!Fastfetch:比 Neofetch 快 10 倍的系统信息神器,终端颜值党必装! - 小林酱博客 分享一两款功能强大且灵活的文件资源管理器 - 小林酱博客 - 记录生活-专注于自媒体分享 Hermes效果差90%的原因找到了,不是模型不行,是你提示词太烂 - 小林酱博客 - 记录生活-专注于自媒体分享 常用emoji符号汇总 可用于自媒体文档直接复制使用 - 小林酱博客 - 记录生活-专注于自媒体分享 分享一个“科学上网”需要的工具-教程详情 - 小林酱博客 - 记录生活-专注于自媒体分享 Hermes Agent 网页版部署 + 后台运行完整教程(WSL/Ubuntu 24.04 适用) - 小林酱博客 AI 助手驱动的 多引擎 AI 管理面板 - 小林酱博客 一人公司(OPC)的八个经典案例 - 小林酱博客 - 记录生活-专注于自媒体分享 Hermes Agent用1周后,OpenClaw我直接卸载了|Hermes科普,部署看这一篇就够了 - 小林酱博客 - 记录生活-专注于自媒体分享 OpenClaw 4.9 升级踩坑指南,老用户必看 - 小林酱博客 OpenClaw救星✨ 告别命令行!小白也能轻松拿捏AI Agent - 小林酱博客 [WordPress插件]ErphpdownV12+V13+V16+V17会员vip下载+付费下载资源/付费查看内容+前端个人中心 - 小林酱博客 - 记录生活-专注于自媒体分享 20个最靠谱OpenClaw必装Skill技能 - 小林酱博客 - 记录生活-专注于自媒体分享 OpenClaw的全流程实战教学,零基础也能学会火爆全网的小龙虾 - 小林酱博客 - 记录生活-专注于自媒体分享 别冲OpenClaw了😭 美团免费AI浏览器才是打工救星 - 小林酱博客 - 记录生活-专注于自媒体分享
个人开发的一款私人密码库 - 项目文档 - 小林酱博客
ZiKX ᓚᘏᗢ 🎲 · 2026-04-30 · via 小林酱博客

项目简介

林酱私人密码库是一款基于 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 邮箱授权码

  1. 登录 https://mail.qq.com

  2. 进入 设置 → 账户 → POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务

  3. 开启 SMTP 服务

  4. 点击 生成授权码(需要手机验证)

  5. 复制授权码并更新到 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:访问网站

完成以上配置后,访问你的域名即可开始使用。


功能使用指南

首次设置

  1. 访问网站,输入你想设置的主密码(至少6位)

  2. 确认密码后点击"创建保险箱"

  3. 系统会自动登录并进入主界面

日常登录

  1. 输入主密码

  2. 点击"发送验证码",验证码将发送到你的邮箱

  3. 在验证码输入框中输入收到的6位验证码

  4. 点击"解锁保险箱"进入系统

添加密码

  1. 点击右上角的"添加密码"按钮

  2. 填写标题、用户名、密码、网址等信息

  3. 选择或创建分类

  4. 点击保存

管理分类

  1. 在左侧分类栏点击"+"添加新分类

  2. 点击分类右侧的"✏️"编辑分类

  3. 点击"🗑️"删除分类(需先删除该分类下的密码)

切换主题

点击页面顶部的太阳/月亮图标切换明暗主题。


安全建议

  1. 使用强主密码:建议使用 12 位以上的密码,包含大小写字母、数字和特殊字符

  2. 定期更换主密码:建议每 3-6 个月更换一次

  3. 保护邮箱安全:验证码邮件发送到你的邮箱,确保邮箱密码安全

  4. 启用 HTTPS:生产环境务必使用 HTTPS 加密传输

  5. 定期备份数据:定期备份 api/vault.db 文件


常见问题

Q: 验证码发送失败怎么办?

  1. 检查 PHP 是否安装了 OpenSSL 扩展

  2. 确认 SMTP 配置(邮箱地址、授权码)是否正确

  3. 检查服务器是否开放了 465 端口

  4. 查看服务器日志获取详细错误信息

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.db

Web 服务器配置

  • 已配置 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 邮箱授权码

  1. 登录 https://mail.qq.com

  2. 设置 → 账户 → POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务

  3. 开启 SMTP 服务

  4. 生成授权码

  5. 更新 SMTP_PASS 配置

功能测试

基础功能

  • 首次访问显示设置主密码界面

  • 主密码设置成功

  • 登录页面正常显示

  • 主题切换功能正常

邮件功能

  • 点击"发送验证码"无错误

  • 验证码邮件成功收到

  • 验证码输入框正常工作

  • 验证码验证成功

  • 过期验证码正确提示

密码管理

  • 添加密码功能正常

  • 编辑密码功能正常

  • 删除密码功能正常

  • 搜索功能正常

分类管理

  • 添加分类功能正常

  • 编辑分类功能正常

  • 删除分类功能正常

安全检查

  • HTTPS 已启用

  • 敏感文件无法直接访问(.env, vault.db 等)

  • 验证码文件权限正确(api/.verify_code.json)

部署完成

  • 所有功能测试通过

  • 已在浏览器测试各功能

  • 已告知用户主密码和邮箱地址

  • 已备份数据库文件


快速修复

验证码发送失败

  1. 检查 PHP OpenSSL 扩展:php -m | grep openssl

  2. 检查 465 端口:telnet smtp.qq.com 465

  3. 验证授权码:使用邮件客户端测试登录

  4. 查看 PHP 错误日志

数据库无法写入

chmod 666 /path/to/api/vault.db
chmod 777 /path/to/api/

PHP 500 错误

  1. 检查 PHP-FPM 日志:/var/log/php-fpm/error.log

  2. 检查 Nginx 错误日志:/var/log/nginx/error.log

  3. 临时开启 PHP 错误显示:

ini_set('display_errors', 1);
error_reporting(E_ALL);

联系支持与项目文件

代码仓库:https://github.com/zhyzy/password-manager

项目文件:

如有问题或建议,请联系开发者。


林酱私人密码库 - 让密码管理更安全、更便捷