很多人的微信聊天记录存在自己的电脑里,但文件是加密的,普通软件打不开,想整理、备份或回顾都不方便。微信自带的导出和备份功能也比较有限,聊久了的聊天翻起来很慢,也没有办法做统计。这个项目面向想把自己的聊天记录留在自己电脑上的个人用户:在本机把自己账号的数据读出来,方便浏览、导出成可以长期保存的文件,并看一些简单的统计,比如聊天多少条、谁回复得快、一年里聊了什么。整个过程在用户自己的电脑上完成,聊天内容不上传到任何服务器。软件只用于用户本人的账号和本人电脑上的数据。
点击空白处退出提示
很多人的微信聊天记录存在自己的电脑里,但文件是加密的,普通软件打不开,想整理、备份或回顾都不方便。微信自带的导出和备份功能也比较有限,聊久了的聊天翻起来很慢,也没有办法做统计。这个项目面向想把自己的聊天记录留在自己电脑上的个人用户:在本机把自己账号的数据读出来,方便浏览、导出成可以长期保存的文件,并看一些简单的统计,比如聊天多少条、谁回复得快、一年里聊了什么。整个过程在用户自己的电脑上完成,聊天内容不上传到任何服务器。软件只用于用户本人的账号和本人电脑上的数据。
软件是一个 Windows 桌面程序,主要有这些功能模块:
1、解密与浏览:在本机读取自己账号的微信数据库,按微信里的顺序显示会话,支持私聊、群聊和公众号,能看文字、图片、视频、语音、表情和引用消息,可以搜索,单个聊天几万条也能翻页浏览。
2、导出:把一个聊天导出成带聊天气泡的网页和 JSON 文件,可以选择是否带图片、视频、表情和语音,也可以限定时间范围。
3、联系人自动备份:对导出过的联系人,每次打开软件自动追加新消息,只追加不覆盖。
4、聊天分析:统计消息数量、活跃时间、回复速度、常用词、表情包和语音等,每个指标都有口径说明。
5、年度报告和分享卡:生成可保存的年度报告网页;选一段聊天生成图片,可隐藏头像、姓名和手机号。
6、任务中心:导出和备份在后台运行,有进度和实时日志,可以取消。
7、安全功能:应用锁(启动时输入密码)、密钥导入导出、一键清除本机保存的数据。
8、授权与更新:激活码绑定一台电脑,新版本会自动下载并校验,用户确认后再安装。
我负责整体方案、功能开发、测试和打包发布,开发过程中使用 AI 辅助编程。
1、技术栈:后端用 Go,界面是 HTML 和 JavaScript,通过 Windows 自带的 WebView2 显示成原生窗口,不需要打开浏览器。语音转码用 C 和 C++ 的开源组件,以独立小程序的方式调用,出问题不会影响主程序。
2、数据读取:微信的数据库使用 SQLCipher 4 加密,我按它的加密规则(PBKDF2 派生密钥、AES-256-CBC 逐页解密)用 Go 重新实现了解密;每次启动只重新解密变化过的数据页,并读取微信日志文件里已提交的新消息,所以打开就是最新的。
3、分析部分单独做成不依赖界面的模块,便于测试;样本太少或差异不明显时不给结论。
4、授权和更新:激活码、设备绑定的服务端用 Supabase 实现;更新包用 Ed25519 签名,程序内置公钥验证,安装失败会自动回滚。
5、测试:Go、界面和服务端各有自动化测试,包括用临时数据库跑的授权场景测试。
6、难点:微信数据格式没有公开文档,图片、语音、消息类型都要自己摸清;通话记录等个别格式在新版微信上还没有实机验证,我在说明里写明了。



评论