李娜被绑架的照片在手机屏幕上泛着冷光。林浩盯着照片里白板上的代码,后颈的汗毛根根竖起——那是段用JavaScript写的勒索函数:
function ransom() {
const secret = ['2025', '08', '15', '14', '30'];
return secret.join('-');
}
“这是什么意思?”周正凑近屏幕,“join('-')会把数组元素用短横线连接,结果是‘2025-08-15-14-30’?”
林浩的手指在屏幕上快速敲击,调出日历:“2025年8月15日14:30——正好是李雨桐死亡当天下午两点半。”他抬头看向周正,“但李雨桐的死亡时间推断是15:00到15:30,这说明……”
“她在14:30就已经出事了。”周正皱眉,“法医之前的死亡时间判断可能错了。”
“不止。”林浩翻出李雨桐的尸检报告,“她的胃里有未消化的蛋糕,生产日期是8月30日——但蛋糕店的配送记录显示,李雨桐上周三(8月28日)订的蛋糕,当天就被取走了。”
“有人替换了配送时间?”周正反应过来,“凶手用join函数伪造了死亡时间的线索,让我们以为秘密藏在8月15日,其实真正的秘密在8月28日!”
“但绑匪为什么用这段代码?”林浩盯着照片里的白板,发现代码下方有行小字:「想知道妹妹的下落,去后湖公园老槐树下找答案。」
“后湖公园……”周正猛地站起来,“李雨桐的尸体就是在那儿发现的!”
林浩的手机震动起来,是陈明的消息:「李父的私人医生找到了,他说李父死前一周做过脑部CT,显示有脑瘤。临终前一直念叨“暗码的钥匙在循环里”。」
“循环……”林浩重复道,“JavaScript里的循环有for、while、do...while,李父说的‘循环’会不会和这段勒索代码有关?”
他打开VS Code,复制勒索代码,尝试修改数组元素:“如果secret数组的索引对应循环次数呢?”他写下段测试代码:
const secret = ['2025', '08', '15', '14', '30'];
for (let i = 0; i < secret.length; i++) {
console.log(`第${i+1}次循环:${secret[i]}`);
}
控制台输出:
第1次循环:2025
第2次循环:08
第3次循环:15
第4次循环:14
第5次循环:30
“五次循环,五个元素。”林浩喃喃道,“但李父说的‘循环’可能指嵌套循环——比如用外层循环控制日期,内层循环控制时间。”他修改代码,加入外层循环:
for (let day = 28; day <= 30; day++) { // 8月28日到30日
for (let hour = 14; hour <= 15; hour++) { // 下午2点到3点
console.log(`日期:2025-08-${day},时间:${hour}:00`);
}
}
控制台输出:
日期:2025-08-28,时间:14:00
日期:2025-08-28,时间:15:00
日期:2025-08-29,时间:14:00
日期:2025-08-29,时间:15:00
日期:2025-08-30,时间:14:00
日期:2025-08-30,时间:15:00
“这覆盖了李雨桐死亡前后的所有时间点。”周正皱眉,“但怎么确定具体是哪一天哪一小时?”
林浩的手机突然弹出条新消息,是阿杰发来的:「林先生,我在赵立的电脑里找到段代码,和你发的勒索函数很像——const realSecret = secret.map(item => item - 1); 后面注释写着:‘循环五次,每次减一’。」
“map方法!”林浩眼睛一亮,“map会对数组每个元素执行操作,返回新数组。如果secret数组是['2025','08','15','14','30'],用item - 1处理每个元素……”
他立刻在代码编辑器里输入:
const secret = ['2025', '08', '15', '14', '30'];
const realSecret = secret.map(item => Number(item) - 1);
console.log(realSecret.join('-'));
控制台输出:2024-07-14-13-29。
“2024年7月14日13:29……”周正重复道,“这是什么日子?”
“李雨桐的生日。”林浩突然想起,“她朋友圈去年发过,2024年7月14日是她24岁生日。”他调出李雨桐的社交账号,找到生日当天的动态——照片里,她抱着个蛋糕,蛋糕上的蜡烛摆成了“24”的形状,背景是后湖公园的老槐树。
“后湖公园老槐树……”周正猛地站起来,“李雨桐的尸体就是在老槐树下发现的!她生日当天去过那里?”
林浩打开地图软件,定位到后湖公园老槐树。卫星地图显示,老槐树下有个废弃的凉亭,凉亭石桌上刻着行小字:「2024.7.14,雨桐生日快乐」——正是李雨桐的笔迹。
“凶手把勒索代码的数组元素减一,是为了指向李雨桐的生日。”林浩喃喃道,“而生日当天的老槐树,正是她藏秘密的地方。”
“可李雨桐已经死了,秘密还能在哪里?”周正不解。
“在她留下的代码里。”林浩想起李雨桐手机里的加密文件,「donate_20250815.pdf」——如果把文件名的日期改成生日,变成「donate_20240714.pdf」,会不会是另一份文件?
他立刻联系陈明:“帮我黑进慈善总会的旧服务器,查找2024年7月14日的捐款记录。”
十分钟后,陈明的消息弹出:「找到了!2024年7月14日,宏远科技向明德基金会转了一笔50万的捐款,备注是“雨桐生日基金”。但当天李雨桐刚满24岁,这笔钱……」
“是她父亲给的生日礼物。”林浩接话,“但明德基金会的账户在当天就把钱转到了‘天启医疗’的账户——和之前的200万捐款流向一样。”
“所以李雨桐的秘密,是发现父亲用她的生日基金给暗码组织洗钱。”周正皱眉,“而她生日当天在老槐树下,可能留下了证据。”
林浩的手机震动起来,是法医的电话:「林先生,我们在李雨桐的指甲缝里提取到了皮肤组织,DNA比对结果出来了——和李父的私人医生匹配。」
“李父的医生?”周正震惊,“他参与了什么?”
“李父的脑瘤是恶性的,医生说最多活三个月。”林浩调出医生的资料,“但李父死前一周突然病情恶化,抢救无效。医生说他当时情绪很激动,一直在说‘暗码的人来要代码’。”
“代码……”林浩重复道,“李父说的‘代码’,会不会是李雨桐藏在生日蛋糕里的东西?”
他突然想起照片里李雨桐生日动态的蛋糕——蜡烛摆成“24”,但蛋糕侧面有个极小的暗格。他联系陈明:“帮我查2024年7月14日后湖公园的监控,找卖蛋糕的摊主。”
监控画面很快传了过来:李雨桐买蛋糕时,摊主递给她一个小盒子,说“这是您朋友特意叮嘱的”。李雨桐把盒子塞进蛋糕侧面的暗格里,然后去了老槐树。
“盒子里装的是什么?”周正问。
“U盘。”林浩猜测,“李雨桐把证据存在U盘里,藏在蛋糕暗格,然后去了老槐树——但她的尸体是在第二天被发现的,凶手可能没注意到这个细节。”
“可李雨桐的尸体被发现时,蛋糕已经被送回了她家。”周正皱眉,“凶手为什么没拿走U盘?”
“因为凶手不知道蛋糕里有暗格。”林浩打开手机备忘录,写下段代码:
// 李雨桐的隐藏逻辑:用生日蛋糕的暗格存储U盘
const cake = {
surface: '生日祝福',
hidden: {
box: 'U盘',
location: '老槐树'
}
};
// 凶手只看到了表面,没发现hidden属性
console.log(cake.surface); // 输出:生日祝福
“凶手像console.log(cake.surface)一样,只看到了表面的信息,没发现hidden属性里的秘密。”周正点头,“所以U盘还在老槐树的蛋糕暗格里。”
“现在去老槐树。”林浩抓起外套,“李娜可能被藏在附近。”
警车驶入后湖公园时,林浩的手机突然响起,是阿杰的语音:「林先生,暗码组织的人在暗网发了条消息,说“循环结束,该兑现承诺了”。还有,李娜的手机定位在老槐树附近的废弃仓库——但我黑进去后发现,仓库的监控被篡改了,时间停在8月30日14:30。」
“8月30日14:30……”林浩重复道,“这是李雨桐被注射镇静剂的时间。”
他抬头看向老槐树,阳光透过树叶在地上投下斑驳的光斑,像极了代码里的二进制位(0和1)。林浩突然想起李雨桐曾在采访里说过:“真相就像循环,你以为结束了,其实只是下一次迭代的开始。”
“周队。”他转头看向副驾的周正,“准备好破门了吗?”
周正握紧腰间的枪:“等你说。”
警车停在老槐树旁。林浩跳下车,冲向废弃仓库。仓库门虚掩着,门缝里漏出微弱的光。他猛地推开门,只见李娜被绑在椅子上,嘴上塞着胶带,手腕上有明显的勒痕。
“李娜!”林浩冲过去,扯掉她嘴上的胶带。李娜哭着说:“他们说……只要我交出姐姐的代码,就放了我……可我没有……”
“代码不在你这儿。”林浩帮她解开绳子,“它在老槐树的蛋糕里。”
李娜愣了愣:“姐姐的生日蛋糕?我上周帮她收拾遗物时,看到过那个蛋糕盒……”
林浩的手机突然响起,是陈明的消息:「U盘找到了!里面是段视频——李父和李雨桐的对话。李父说:“暗码的人用我的病威胁我,让我帮他们洗钱。雨桐,你一定要销毁证据。”李雨桐说:“爸,我不会让他们得逞的。”」
仓库的门突然被撞开。戴鸭舌帽的男人举着枪冲进来,正是咖啡馆擦柜台的阿杰!
“你们以为找到代码就能结束?”阿杰冷笑,“暗码组织的代码,藏在更深的循环里!”他举起枪,对准林浩,“但今天,你们都得死!”
林浩挡在李娜面前,迅速掏出手机,打开开发者工具,调出段代码:
// 无限循环:阻止对方行动
while (true) {
console.log('循环中...');
}
阿杰愣了愣:“你在干什么?”
“while(true)是无限循环,会让浏览器崩溃。”林浩冷笑,“就像暗码组织的阴谋,看似循环往复,其实漏洞百出。”
阿杰举起枪,但林浩早已按下手机的电源键——手机黑屏的瞬间,仓库的灯光突然熄灭。
“跑!”周正大喊。
林浩拉着李娜冲出仓库,身后传来阿杰的咒骂声。警笛声由远及近,包围了仓库。
李娜颤抖着抱住林浩:“姐姐……她是不是发现了更大的秘密?”
林浩望着后湖的芦苇荡,想起李雨桐临死前攥着的便签纸,想起阿杰颤抖的道歉,想起赵立跳楼前最后的冷笑。
“是的。”他轻声说,“但循环还没结束。暗码组织的代码,藏在更深的循环里……”
他的手机弹出条新消息,是陈明发来的:「李父的云盘里还有段加密文件,解密密钥是“LiYunTong-1”(比之前的密钥多了个-1)。我黑进去了,里面是份名单——暗码组织的成员,包括周队你提到的慈善总会官员,还有……」
消息戛然而止。
林浩的手机屏幕突然黑了下去,再也无法开机。他望着黑屏的手机,想起李雨桐的代码注释:「循环的意义,是永远不要停止追寻真相。」
而他的追寻,才刚刚开始。
本书首发来自17K小说网,第一时间看正版内容!
1 永夜
作者: 江火香猫
科幻末世 1042417 字
永夜:浩劫余生,终见光明
2 校花别沾边,重生的我只想搞钱
作者: 十万字
都市小说 789066 字
都重生了,还不好好搞钱?
3 我死后,姐姐们才开始爱我
作者: 木马非马
都市小说 80082 字
我死后,全家人才开始知道爱我,可我已经死了
4 上门狂婿
作者: 狼叔当道
都市小说 8171953 字
上门赘婿,受辱三年,期约一到,强者归来!
5 武圣之上
作者: 任我独行侠
玄幻奇幻 201339 字
这是个废材靠着金手指,逆天改命的故事!
6 60年代:开局荒年,我带着全村吃肉
作者: 妞妞骑牛
都市小说 415929 字
穿越60年代:开局荒年,我带着全村吃肉
7 这位诗仙要退婚
作者: 人世几春秋
历史军事 1194814 字
这位诗仙要退婚:文韬武略
8 玄幻:遇强则强,我的修为无上限
作者: 史上最帅作者
玄幻奇幻 1481875 字
获得遇强则强系统,我直接啪啪给了天道两个大嘴巴子
9 红豆缘:炮灰也要长命百岁
作者: 翘褚
古代言情 271116 字
开局炮灰剧本怎么办?不慌,苟着苟着就到大结局了
10 神龙诀之九龙剑诀
作者: 光环美男
仙侠武侠 1003350 字
江湖传闻要是得到《神龙诀》,就可以称霸武林!
《第四章 循环里的「时间密码」》最新评论
评论本章还没有人发表评论哦~
我来说两句