chore: 登录仅密码加密改造(日志)

This commit is contained in:
夏犀麟 2026-08-28 00:29:59 +08:00
parent d7086382f7
commit 1b82fd1771

View File

@ -34,3 +34,5 @@
- 2026-08-27 | FEAT | 登录密码「RSA+AES-GCM」混合加密传输对称+非对称结合)双端完成并 E2E 验证 15 项全过service 新增 internal/library/crypto密钥三级来源、SPKI 公钥、ts 防重放、DecryptLogin/DecryptField+ 公开接口 POST /system/auth/public-key + Login/AdminCreate/AdminResetPwd 密文支持allowPlain 仅 devadmin 新增 utils/crypto.tsWeb Crypto 零依赖)+ loginApi/getPublicKeyApi 加密 + createAdmin/resetAdminPassword 加密字段;数据库密码本就是 bcrypt 哈希。提交 service 0648477 / admin a1bddc3push 仍待令牌)。⚠️坑:①公钥必须 SPKIMarshalPKIXPublicKeyPKCS#1 致 ASN.1 wrong tag②Node 模拟时 GCM tag 需 getAuthTag 单独取WebCrypto/Go 密文已含 tag③commitlint scope 须在允许列表(用 other/project - 2026-08-27 | FEAT | 登录密码「RSA+AES-GCM」混合加密传输对称+非对称结合)双端完成并 E2E 验证 15 项全过service 新增 internal/library/crypto密钥三级来源、SPKI 公钥、ts 防重放、DecryptLogin/DecryptField+ 公开接口 POST /system/auth/public-key + Login/AdminCreate/AdminResetPwd 密文支持allowPlain 仅 devadmin 新增 utils/crypto.tsWeb Crypto 零依赖)+ loginApi/getPublicKeyApi 加密 + createAdmin/resetAdminPassword 加密字段;数据库密码本就是 bcrypt 哈希。提交 service 0648477 / admin a1bddc3push 仍待令牌)。⚠️坑:①公钥必须 SPKIMarshalPKIXPublicKeyPKCS#1 致 ASN.1 wrong tag②Node 模拟时 GCM tag 需 getAuthTag 单独取WebCrypto/Go 密文已含 tag③commitlint scope 须在允许列表(用 other/project
- 2026-08-27 | FEAT | 生产全量请求/响应加密开发保持仅密码加密service 新增 middleware/APICrypto请求整体解密+响应用同一 AES 会话密钥加密回传public-key 明文豁免,未加密请求拒绝)+ crypto 增 DecryptRequest/EncryptResponse/fullBody 开关admin 新增 installCryptoInterceptors请求整体加密、响应解密最先注册requestClient+baseRequestClient 双生效VITE_GLOB_API_ENCRYPT 控制prod true/dev falseinjectEnv 增 ENCRYPT_FULL_BODY/ENCRYPT_ALLOW_PLAIN。提交 service ebc507e / admin f8463e9。⚠①GF 的 r.GetBody() 缓存密文到 bodyContent 且 handler Parse 走缓存 → 中间件须 io.ReadAll(r.Request.Body)②GF_GCFG_ENV 仅 gf run CLI 认,直接跑二进制恒加载 config.yaml → 开关必须 env 注入③Node 模拟响应解密需 setAuthTag 显式分离 tag浏览器 WebCrypto 直接整体解密④TS Uint8Array.subarray 返回 ArrayBufferLike 不满足 BufferSource 需拷贝。验证dev 仅密码 15 项 + prod 全量 9 项 E2E 全过。 - 2026-08-27 | FEAT | 生产全量请求/响应加密开发保持仅密码加密service 新增 middleware/APICrypto请求整体解密+响应用同一 AES 会话密钥加密回传public-key 明文豁免,未加密请求拒绝)+ crypto 增 DecryptRequest/EncryptResponse/fullBody 开关admin 新增 installCryptoInterceptors请求整体加密、响应解密最先注册requestClient+baseRequestClient 双生效VITE_GLOB_API_ENCRYPT 控制prod true/dev falseinjectEnv 增 ENCRYPT_FULL_BODY/ENCRYPT_ALLOW_PLAIN。提交 service ebc507e / admin f8463e9。⚠①GF 的 r.GetBody() 缓存密文到 bodyContent 且 handler Parse 走缓存 → 中间件须 io.ReadAll(r.Request.Body)②GF_GCFG_ENV 仅 gf run CLI 认,直接跑二进制恒加载 config.yaml → 开关必须 env 注入③Node 模拟响应解密需 setAuthTag 显式分离 tag浏览器 WebCrypto 直接整体解密④TS Uint8Array.subarray 返回 ArrayBufferLike 不满足 BufferSource 需拷贝。验证dev 仅密码 15 项 + prod 全量 9 项 E2E 全过。
- 2026-08-27 | CHG | 登录接口改为「永远只加密密码字段」并从全量加密豁免service APICrypto plainRoutes 增 /system/auth/login + ResolveLogin 密文优先admin loginApi 恒提交 {username 明文, encryptedKey, encryptedData} + 拦截器豁免 /auth/login。全量模式 5 项 + dev 15 项 E2E 通过。提交 service 70cb861 / admin f70f5dc。