Skip to content

Commit bdc6745

Browse files
committed
feat(encryption): 添加本地解密脚本支持开发环境
- 新增 scripts/decrypt.js 脚本,实现对指定文件夹加密内容的自动解密 - 解密脚本支持从环境变量或命令行交互输入密码 - 读取配置文件 public/config.yml 获取加密功能开关及受保护文件夹列表 - 扫描受保护文件夹内所有 Markdown 文件,并跳过未加密文件 - 使用 decryptContent 函数解密文件内容并写回,支持错误处理和日志提示 - 更新 package.json,新增 decrypt 脚本命令,修改 dev 命令为 dev-with-cleanup.js - 替换多个加密内容文件为明文备份,方便本地调试和编辑 - 技术笔记和会议纪要等文档详细记录加密方案和解密体验改进方案
1 parent 5fac795 commit bdc6745

7 files changed

Lines changed: 730 additions & 21 deletions

File tree

content/protected/meeting-minutes.md

Lines changed: 86 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,93 @@ description: '团队内部会议记录'
55
tags:
66
- '会议'
77
- '内部'
8-
encrypted: true
9-
encryptedAt: '2026-01-08T11:43:11.696Z'
108
---
119

12-
<!-- ENCRYPTED_CONTENT -->
10+
# 内部会议纪要
1311

14-
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
12+
## 会议信息
1513

16-
<!-- /ENCRYPTED_CONTENT -->
14+
- **日期**: 2025年1月8日
15+
- **时间**: 14:00 - 16:00
16+
- **参会人员**: [保密]
17+
- **会议类型**: 项目评审
18+
19+
## 议程
20+
21+
### 1. 项目进展汇报
22+
23+
**已完成**:
24+
25+
- 加密功能实现
26+
- 前端界面优化
27+
- 文档编写完成
28+
29+
🔄 **进行中**:
30+
31+
- 性能优化
32+
- 测试用例编写
33+
34+
📋 **待开始**:
35+
36+
- 用户反馈收集
37+
- 功能迭代规划
38+
39+
### 2. 技术讨论
40+
41+
#### 加密方案选择
42+
43+
讨论了多种加密方案:
44+
45+
| 方案 | 优点 | 缺点 | 决策 |
46+
| ----------- | ------------------ | -------------- | --------- |
47+
| AES-256-GCM | 安全性高,标准算法 | 计算开销 | ✅ 采用 |
48+
| ChaCha20 | 性能好 | 浏览器支持有限 | ❌ 不采用 |
49+
| RSA | 非对称加密 | 不适合大数据 | ❌ 不采用 |
50+
51+
#### 用户体验优化
52+
53+
讨论了以下改进点:
54+
55+
1. **密码输入界面**
56+
- 设计更美观的对话框
57+
- 添加密码强度提示
58+
- 支持记住密码功能
59+
60+
2. **性能优化**
61+
- 使用 Web Worker 解密
62+
- 缓存解密结果
63+
- 懒加载加密内容
64+
65+
3. **错误处理**
66+
- 友好的错误提示
67+
- 重试机制
68+
- 日志记录
69+
70+
### 3. 决策事项
71+
72+
**决策1**: 采用 AES-256-GCM 加密算法
73+
**理由**: 安全性高,浏览器支持良好
74+
75+
**决策2**: 密码使用会话级缓存
76+
**理由**: 平衡安全性和用户体验
77+
78+
**决策3**: 加密内容不参与搜索和图谱
79+
**理由**: 保护隐私,避免信息泄露
80+
81+
## 行动项
82+
83+
- [ ] @张三: 完成性能测试(截止:1月10日)
84+
- [ ] @李四: 编写用户文档(截止:1月12日)
85+
- [ ] @王五: 收集用户反馈(截止:1月15日)
86+
87+
## 下次会议
88+
89+
- **时间**: 2025年1月15日 14:00
90+
- **议题**: 功能迭代规划
91+
92+
---
93+
94+
**保密级别**: 内部使用
95+
**分发范围**: 项目组成员
96+
97+
**备注**: 本会议纪要包含敏感信息,请勿外传。

content/protected/private-diary.md

Lines changed: 31 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,38 @@ description: '我的私密日记'
55
tags:
66
- '日记'
77
- '个人'
8-
encrypted: true
9-
encryptedAt: '2026-01-08T11:43:11.709Z'
108
---
119

12-
<!-- ENCRYPTED_CONTENT -->
10+
# 个人日记
1311

14-
4hKR3faRFRfdMsKFuW4CvpTe3EwyC/IQkqi5wWeZcvD0KV6izrUOLpXOsfjR9HbuQsZridDJSjmsVdeGGHb/dbANsyFNhqSKWj6XUWIH/M+vL0hpd9BQ4aVMay9FcbeMi0VCR+C8cTwo3uVQBpYpPJoxOKac4842E1MpaQRlutfVZf1CeAoufJOgbzuptDo5GsyzTKenHbMkJm5E1YtNLoqDsk2y+mN75ZHiXLnSprtecfHjciCeTrOBvkp6uSDuvSGEmm2JO/kN5fIACxb1flPobKvtKvjsxsNrcabILIBG+WiguKSlT4nYK4YHSC4r7ojpQZ8Ygb2tLz2c7lLkgf4Itmfa0MmurhqvmMT4EO159Cs+UwYpmhire2v9i3onBhLIMpQkaTFJYO/ktEfOvZbNvLpVjY90bcYPUuK/LZxm+nUnr0LpRDmWAMA+hRUe7Mk3fg532e/jQvZc/VPKYS8cONtghDH27xbmGCaLu4L56Znhkk/bi0I/viMmRA441Qyok3kygo8TVWvO4jXIEtIQFIdTZn/RzhZl4Ex30jbGaAVULkMtx4Ga7P7EwEJlaoQStOlLuoEo1IN0YRKmFTjs+A1B8ivxDjByoWQNx2UocscYQeCDBrns1b/Cjep86e/TauVg/sZORd0NasK4dxEmwHHgH96BMP3MppyvmLHDsbfG6MmlXR9mNyUwEATwo0I157CNQok5DoC0yDdI7vY5oKuU891pmLd1elC5Mlz1hLU63uQwJWmypygO/tEn2n9KJhoMOpDq/1p2Dsrdtm+SThw7oaE2l22bntgLnJgsUcrLg58FQQ9A0MFj/CQbaHbb/4h/plui7JyO5LYeW2PlKdzSdJN6xraxiASYdV5VaSgyuMa/w/0bBueUx79A76qXYPPUbHqe0OWolUEfBZrtqoEPX0ukdEAuslfLTmwf1Mi2I7Cz4Uy2t+P4S2Ias3tgodZqU0HKSPyGPxM9yzqeSCLIVX/ly6ZoK6hynYY3bMk5AnylM5L8snxdZ33fJXs9F3xmY0jELulrz9NqXD5hiiWWXaMQ6+n/bTSIetJoJC27xb5YGMVTNheFA7JF46tFpVwHux4g1URA4raYvQhb7nT/s740r1yB9dreVrwy6FquaTZ+9nqToGoqiufzm+JqmDtu4L/izrseVDNwbgPcUoSB
12+
## 2025-01-08
1513

16-
<!-- /ENCRYPTED_CONTENT -->
14+
今天是个特别的日子,我终于完成了一个重要的项目。
15+
16+
### 早上
17+
18+
☕ 早上8点起床,喝了一杯咖啡,开始规划今天的工作。
19+
20+
### 下午
21+
22+
💻 下午专注于编码,实现了加密功能。这个功能非常重要,因为:
23+
24+
1. 可以保护私密内容
25+
2. 即使代码公开也很安全
26+
3. 用户体验良好
27+
28+
### 晚上
29+
30+
🌙 晚上回顾了一天的工作,感觉很有成就感。
31+
32+
## 私密想法
33+
34+
这里记录一些只想自己知道的想法:
35+
36+
- 对未来的规划
37+
- 个人的梦想
38+
- 需要保密的想法
39+
40+
---
41+
42+
**提示**:这是加密内容示例,只有输入正确密码才能查看。

content/protected/technical-notes.md

Lines changed: 98 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,105 @@ tags:
77
- '研究'
88
- '保密'
99
category: '技术文档'
10-
encrypted: true
11-
encryptedAt: '2026-01-08T11:43:11.717Z'
1210
---
1311

14-
<!-- ENCRYPTED_CONTENT -->
12+
# 技术笔记(保密)
1513

16-
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
14+
## 项目架构设计
1715

18-
<!-- /ENCRYPTED_CONTENT -->
16+
### 核心思路
17+
18+
这个项目采用了一些独特的设计思路:
19+
20+
```mermaid
21+
graph TD
22+
A[用户访问] --> B{内容类型}
23+
B -->|公开内容| C[直接显示]
24+
B -->|加密内容| D[密码验证]
25+
D -->|密码正确| E[解密并显示]
26+
D -->|密码错误| F[提示重试]
27+
```
28+
29+
### 关键技术点
30+
31+
#### 1. 加密算法
32+
33+
- **算法**: AES-256-GCM
34+
- **密钥派生**: PBKDF2 (100,000次迭代)
35+
- **随机因子**: 每次加密使用新的盐值和IV
36+
37+
```javascript
38+
// 示例代码(仅供参考)
39+
const encrypted = encryptContent(content, password)
40+
const decrypted = decryptContent(encrypted, password)
41+
```
42+
43+
#### 2. 前端解密
44+
45+
使用 Web Crypto API 实现浏览器端解密:
46+
47+
```javascript
48+
// 浏览器环境解密
49+
const key = await deriveKey(password, salt)
50+
const decrypted = await crypto.subtle.decrypt(
51+
{ name: 'AES-GCM', iv: iv },
52+
key,
53+
encryptedData
54+
)
55+
```
56+
57+
#### 3. 安全考虑
58+
59+
- ✅ 密码不存储在代码中
60+
- ✅ 加密文件可以安全提交到Git
61+
- ✅ 即使仓库公开,内容也无法被解密
62+
- ✅ 密码只在会话期间缓存
63+
64+
## 实现难点
65+
66+
### 难点1: 浏览器兼容性
67+
68+
Web Crypto API 需要 HTTPS 环境或 localhost。
69+
70+
**解决方案**:
71+
72+
- 开发环境使用 localhost
73+
- 生产环境强制 HTTPS
74+
75+
### 难点2: 性能优化
76+
77+
解密操作需要一定的计算时间。
78+
79+
**优化措施**:
80+
81+
- 使用 SessionStorage 缓存密码
82+
- 异步解密,显示加载状态
83+
- 优化 PBKDF2 迭代次数
84+
85+
### 难点3: 用户体验
86+
87+
如何让密码输入体验更好?
88+
89+
**改进点**:
90+
91+
- 美观的模态对话框
92+
- 密码显示/隐藏切换
93+
- 清晰的错误提示
94+
- 记住密码(会话级别)
95+
96+
## 未来改进方向
97+
98+
1. **多密码支持**: 不同文件夹使用不同密码
99+
2. **密码提示**: 提供密码提示功能
100+
3. **密码强度检查**: 建议用户使用强密码
101+
4. **批量操作**: 支持批量加密/解密
102+
103+
## 内部资料
104+
105+
以下是一些敏感的技术资料和配置信息...
106+
107+
(此处省略具体内容)
108+
109+
---
110+
111+
**注意**: 本文档包含敏感技术信息,请勿分享给未授权人员。

content/protected/test-encrypted.md

Lines changed: 56 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,63 @@ description: '这是一个测试加密功能的示例文档'
55
tags:
66
- '测试'
77
- '加密'
8-
encrypted: true
9-
encryptedAt: '2026-01-08T11:43:11.724Z'
108
---
119

12-
<!-- ENCRYPTED_CONTENT -->
10+
# 测试加密内容
1311

14-
10YEEoHOPNWF+ps7nFcEqHCfu3G4qTEAHVuxGKrbEu39Cll4kErs4RJ3+RMnyd/oVvSVbR1Lc09o+Y7VVz7tG1KF/zHDWXm/ARhzuztNqyoFeIx094ELo/KNUAqKWtg0GfIiOwseZguR8lyFjcLzBcrFH63VffdK7DuT8DKBZxNPITvhrMhk920EStF0SpFJIAQk18Te0FAcC46BxrGm2+XcgWx6woPlvk9rKZJtt/8vat2MKkf15aHYDdk2EZIbnSpAQ21j58rkRAjWxD5hf3kGoRB7Jkl41NXtJJCJ0Bc0a67AJJUbjTNmvTW2wCZJGhVQlH5qwe0XKIPVNxTy9yPcJvukl9VovKipUFBwolUAhw2O6qaPWR5oeKjrIzvq15BODpRAJ+b8uh7Ae5R1Qn3Ucbd09XDyf1N/jcbhg+TkQFX3hPTeTNG5R8fkfO12T/n3vp5d2PZ8f9gpH38O+noM3xyiPBzTm30BBYQGRKHg82Wo7J/JFxD1Yev5MrzSvEfVxt36Ry5Ipz0J888eL2izLnVit88V3HX3ZHAOWwS9SjcWh//GdnUHIrh1CSLWDcgwlH0AmSWkHjiEmqEG60bpGiNAKDTxQj4QphZjM78b66nKp1ovhHJendBEs8yBJ+jOazcwjqko7hXMm4Lu37cE5+7t/ppukQaivaG5QIKzCoVEXm3QCN0CrcbG3lFVA0wWMqF96lZUMqBGy88zDUB0leCbeP68QxZu5JwHZczpRiE6HUpuuzyXuy9qNm+7KKRmz1LDPJ/aDwK/+9ioXj25Nnf9R1FqgxvipvHGsD/mhyBckDPCKyc11YijjGP3Zx81AGKJluSf982AK5cOM9TG5k6mEGPeihmlTYCthIhZ0QcQ0Q8Z5QUX/S/ISl6YJZ6NCc6BsMzwWPOOtlW0n51Ex9lBWIXxd0wNV0/Uz3OD1odrO1ikv2OpwtD2VG0nmx1cVgU5aG+AAzhq4hTDhgsfw2w3tGLy9HgFyHrsiIfyuv/XEsGOwrfnjdU1NTFC5fRG0Mv5Nqo1SkU507/wBrE5Fen8xhBSJ8ugd/i9xrRAy1LXxqrTlXBCAzG8ZUs2Zaej2NAk8naTe/LTtksgusw0kNPtGtQfoWtczz26clWJpES9eTwjeJwyAA0ieNCKzLm+4M5piLMvV7VCyMKMd/VPuircyap1JrjTRvZykgehol3uPv5SovF6Y3pc790L+VGtZYYEC/lUpLJMgj4QZU1QEkDxr5vlgy8bZTuu0qeKyyaejCljZs3j0TVltosG2j4e4UOFhbqm8wyqaFq60v/jm3d7ElKM463qs6PhyhRZfekl8I0M1646zAOKshAwuSYJvqXjttllYWC7Nw9OjckQwxjmRVguV06BskMsK+cbzjMxsLCtnJbcQEVR3om5unhjY2noQZ26Saly5TsgnI3vvJyW0AvyCcT/pldcoV5/zfNvOt2xNt6EKbVUQsAZdu+QnH9iKRY/kHK1S+oPRCoB+GKAEfAQU4y7AjqrOIxZ8OxJMtIdYZYfT88OP4CVKhybICs93EGu4VK0MSXu3H2BtdEqtnG+wF8I0k7UBVnhE3wlGAERR53KPd7BOMHevXcoCmCAji/NSN9Mnft9z+gFbrnwtdArOltaxrfteQKbvtQAmo3PamL1kzP9yfA5bMx1PbEiARIFIEFFp26YMV6is4DC4Kko2UV0fkARPv2nDtTj1beLO+9jFV6OFeSsotB2yRXxQE0vEhYOR3RyxtrWF18/FYi0qalB7fiQYJi4vw3WGNCmYWe8nH8d7CTaemY8JPj1RHNK84p8eMqTdSPP0/923kzR++6YQBzhpnnt08sQJqDE
12+
这是一个受保护的文档,用于测试加密功能。
1513

16-
<!-- /ENCRYPTED_CONTENT -->
14+
## 私密信息
15+
16+
只有知道密码的用户才能看到这些内容:
17+
18+
- 重要的私密笔记
19+
- 个人想法和心得
20+
- 敏感的技术文档
21+
22+
## 加密特性
23+
24+
✨ 此文档具有以下特性:
25+
26+
1. **内容加密**:使用 AES-256-GCM 加密
27+
2. **密码保护**:需要输入正确密码才能查看
28+
3. **安全隔离**:不参与文档关系图谱
29+
4. **会话缓存**:密码在会话期间保存
30+
31+
## 测试内容
32+
33+
这里是一些测试内容,用于验证加密和解密是否正常工作。
34+
35+
### 中文内容测试
36+
37+
这是一段中文内容,用于测试中文字符的加密和解密。
38+
39+
### 代码块测试
40+
41+
```javascript
42+
function testEncryption() {
43+
console.log('测试加密功能')
44+
return '加密成功!'
45+
}
46+
```
47+
48+
### 链接测试
49+
50+
这是一个 [外部链接](https://example.com)
51+
52+
### 列表测试
53+
54+
- 项目 1
55+
- 项目 2
56+
- 项目 3
57+
58+
### 表格测试
59+
60+
| 列 1 | 列 2 | 列 3 |
61+
| ---- | ---- | ---- |
62+
| A | B | C |
63+
| D | E | F |
64+
65+
## 总结
66+
67+
如果您能看到这些内容,说明加密功能工作正常!🎉

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@
55
"type": "module",
66
"scripts": {
77
"predev": "node scripts/encrypt.js || true",
8-
"dev": "vite",
8+
"dev": "node scripts/dev-with-cleanup.js",
9+
"decrypt": "node scripts/decrypt.js",
910
"prebuild": "node scripts/encrypt.js || true",
1011
"build": "vite build",
1112
"prebuild:ssg": "node scripts/encrypt.js || true",

0 commit comments

Comments
 (0)