手机屏幕亮着,那条消息还停在最上方。
“刚看到有人发匿名帖,标题是《江逾白背后的女人》,配图好像是林溪的校园卡照片。”
我盯着字句,指尖悬在屏幕上方。江逾白已经站起身,顺手拿起外套。他看了我一眼,“先去实验室?”
我点头,把U盘从电脑上拔下来塞进口袋。走廊灯依旧没亮,我们一前一后走下楼梯,脚步声很轻。
路上谁都没说话。我知道他在想什么——那种被人窥探、被恶意扭曲的感觉,像一层看不见的雾缠上来。可这一次,我不想等人替我拨开。
实验室门禁刷响时,时间刚过十一点。仪器待机的指示灯泛着微弱绿光,我直奔主控台,插上U盘调出群聊里的图片。江逾白站在旁边,没碰键盘,只是看着我操作。
我把照片放大到最大,目光落在背景的窗框投影上。江家老宅朝南的庭院,下午三点的阳光应该从左前方斜照进来,影子拉向右后方。可图中那个“我”站着的位置,窗框阴影却偏向东侧,像是清晨或傍晚的角度。
不对。
我又调出当天天气记录,确认了光照数据。再用软件提取图像的高光区域分布,结果更明显:光源方向和实际环境完全不符。
“这是合成的。”我说。
江逾白俯身看了一眼分析图,“能查到原始文件来源吗?”
“上传的是压缩后的jpg,元数据被清过。”我摇头,“但拼接痕迹还在。”
我启动频谱分析模块,对人脸边缘进行纹理检测。几秒后,波形图跳出异常波动——左耳根部和下颌连接处,颜色过渡生硬,高频信号断裂。那是AI换脸常有的破绽,算法补全细节时容易留下数字噪点。
“你看这里。”我指着屏幕局部放大图,“皮肤质感和背景砖墙的噪点频率不一致。她用了通用模型生成面部,但没做后期融合处理。”
江逾白沉默片刻,“苏倩倩最近有没有接触过这类工具?”
“她上个月选修了数字媒体课。”我回忆起来,“结课作业就是用AI修复老照片。”
他轻轻“嗯”了一声,没再多问。
我继续导出报告框架,标题打下一行字:《关于群发照片的图像真实性鉴定》。内容分三部分:光照矢量矛盾、人脸边缘频谱异常、背景与前景景深不匹配。每项都附截图和参数说明。
写完最后一行,我按下保存。U盘重新插入,准备拷贝副本。
这时手机震了一下。同学会群里弹出新消息。
苏倩倩发了个笑脸表情,接着打字:“怎么?不敢回应?还是怕越描越黑?真正的江太太早就该露面了,何必藏着掖着让别人背锅。”
我盯着那句话,手指慢慢收紧。
江逾白忽然伸手,按住我的手腕,“别回。”
我抬眼看他。
他声音不高,“你想让她继续当主角?”
我明白他的意思。一旦开始解释,舆论就会围着“是不是她”打转。可如果根本不需要解释呢?
他解锁手机,相册打开,翻到一张照片。画面里我们穿着衬衫,站在民政局门口,手里拿着红本,笑得有点拘谨。那天风很大,我的头发被吹乱了一缕,他正伸手想帮我别到耳后,快门刚好按下。
他把这张图发进群聊,只写了一句:“下个月婚礼,欢迎来吃喜糖。”
然后点了退出群组。
我愣了几秒,随即把刚做好的鉴定报告上传至群文件,备注写道:“技术可以伪造影像,但无法复制七年每一天的真实记录。”
发送成功。
江逾白看了眼我的屏幕,嘴角动了动,没说话。
我拔下U盘,重新插回去,开始备份所有分析过程。屏幕蓝光映在脸上,数据流一条条滚动。这份报告不仅能用来辟谣,还能作为反向追踪的基础素材。只要有人转发原图,就能通过哈希值比对锁定传播节点。
“你还记得高中物理竞赛那次吗?”我忽然开口。
他“嗯”了一声。
“你帮我改的实验报告,最后一页写了句‘数据不会说谎’。”我看着进度条加载,“现在我也信这个。”
他站在我身后,手臂搭在椅背上,“所以你现在做的每一步,都是在让真实自己浮出水面。”
我没回头,点了点头。
就在这时,手机又响了。不是群消息,是一条私聊。
我点开,是苏倩倩。
头像是空白背景,名字也没改,就叫“倩”。
消息只有一句:“你以为这就完了?”
我没立刻回复。
江逾白低头看了看,“要报警吗?”
“不用。”我把对话截了图,拖进报告附件夹,“留着,以后一起算。”
他轻笑了一声,“你越来越像你自己的样子了。”
我合上笔记本,实验室只剩主机风扇运转的声音。窗外校园安静,路灯昏黄,偶尔有晚归的学生走过。
“走吗?”他问。
“等一下。”我重新打开图像分析界面,把原始合成照再次载入。刚才注意力都在人脸和光影上,现在我想看看背景有没有遗漏的信息。
我逐层剥离图层,降低透明度,试图还原底层像素结构。突然,右下角一处模糊区域引起了注意——那是庭院石阶边缘,本该是空的,却隐约有个倒影轮廓。
不像人影,也不像植物。
我把那一块单独抠出来,增强对比度。
形状渐渐清晰。
是一个支架的一角,带旋钮的那种,像是三脚架。
我皱眉,“这张图……是拿设备实拍后再换的脸?”
江逾白凑近看,“有人在现场布过景?”
“或者,”我缓缓说,“她手里有江家老宅的实景素材库。”
空气静了一瞬。
他眼神沉了下去,“她是怎么拿到的?”
我摇头,“除非……有人授权给她访问权限。”
话音落下,我忽然想起什么。
上周系里统一更新科研项目资料包时,系统提示所有成员需绑定个人账号同步云端资源。江逾白作为负责人,有权管理协作名单。我记得当时他让我核对一份共享目录,其中就包含几个未命名的家庭场景建模文件。
“你之前分享过的那个加密文件夹,”我问他,“设置的是二级权限还是开放浏览权?”
他顿了一下,“二级。但如果有主账号邀请,临时访客也能进入。”
“她是不是也在那次同步名单里?”
他没回答,而是直接打开手机后台管理页面。几秒后,他目光锁定了某个记录。
“她三天前登录过。”他说,“用的是你的身份关联跳转。”
我心头一紧。
“什么意思?”
“你之前注册项目协作平台时,填了备用联系人。”他抬头看我,“填的是我。系统判定为亲密关系链,自动授予部分共享权限。”
也就是说,她借了我的名义,进入了不该看的地方。
我盯着屏幕,脑子里飞快回放这几天的细节。她在食堂故意提起江家茶会,问起我有没有去过老宅;昨天还在朋友圈发了一张模糊的庭院夜景,配文“梦中场景成真”,当时我以为是随便感慨。
原来不是。
她是早就准备好了。
我重新打开那份鉴定报告,在末尾加了一行:
“建议立即回收所有共享资源访问权限,并对近期异常登录行为做日志审计。”
江逾白看完,点了下头,“明天我就提交权限变更申请。”
我关掉文档,正准备拔U盘,忽然注意到进度条还没走完。刚才备份时勾选了“同步云端副本”,但现在连接状态显示失败。
我点开网络日志,发现传输中断的原因写着:“目标路径不存在”。
这不可能。我的云盘账户一直正常。
我切换到个人账号页面,输入密码。
登录失败。
试了第二次,提示:“账户已被冻结”。
我猛地站起来,“我的资料库被锁了。”
江逾白立刻接过鼠标,检查认证记录。两分钟后,他脸色变了。
“有人提交了身份申诉,声称账户存在异常活动,申请紧急冻结。”他看向我,“申诉Ip来自校内代理服务器,时间是十分钟前。”
我盯着屏幕,寒意一点点爬上脊背。
对方动手了。
而且动作很快。
这不是单纯的造谣,而是一整套预设流程:先用合成照制造混乱,再切断我的信息出口,最后让我失去反击能力。
好算计。
我深吸一口气,手指敲在键盘上,尝试通过本地缓存恢复文件。还好,刚才的分析结果都还在硬盘里。
“暂时用不上云盘。”我说,“本地存档够用了。”
江逾白点点头,语气平静,“那就先保住手里的证据。”
我打开另一个加密分区,把所有关键文件转移进去。做完这些,我才松了口气。
“她以为删掉我的声音就够了。”我看向他,“但她忘了,我会重建通道。”
他看着我,眼神里有种少见的认真,“你不需要一个人重建。”
我笑了笑,没说话。
实验室的灯依然亮着,主机风扇嗡嗡作响。我坐在椅子上,手指放在U盘上,没有拔下来。
门外传来轻微的脚步声,由远及近。
停在了门口。