结论:别把 WinkDesk API 密钥明文写进配置文件,优先用系统密钥链或环境变量注入,其次才是加密文件。
① 最省事也最稳的做法是走系统凭据管理器,比如 macOS 的 Keychain、Windows 的 Credential Manager、Linux 的 Secret Service,把密钥交给操作系统托管,代码里只存一个引用名,进程启动时再取出来。
② 如果必须落盘,至少用环境变量或 .env 文件加权限控制,文件权限设成 600,并且把 .env 写进 .gitignore,避免误提交到仓库。注意环境变量对同机器其他进程并非完全隔离,多用户环境要谨慎。
③ 真要加密文件,选 AES-256-GCM 这类带认证的算法,密钥不要和密文放一起,解密密钥通过启动参数或 KMS 下发。别自己造加密轮子,用 libsodium、age 这类成熟库。
④ 无论哪种方式,都要支持轮换:给密钥加过期时间,定期在 WinkDesk 后台重新生成,旧密钥及时吊销。日志里绝对不能打印完整密钥,只留后四位用于排查。