昏暗的房间里,只有笔记本电脑屏幕的蓝光映在陈默的脸上,他盯着那段字符已经整整三个小时了——cf0814666。

作为网络安全公司的渗透测试员,他见过无数密码:123456、password、iloveyou,以及各种生日缩写,但眼前这串由字母和数字组成的字符串,既不像随机生成的密钥,也不像常见的社会工程学产物,它像一颗种子,深深嵌在一个废弃十年的数据库碎片里。
“cf”——通常指向“配置文件”(configuration)的缩写,也让人联想到“核心功能”(core function)或者“中央文件”(central file)。“0814666”这串数字尤其诡异:8位数字,既不是日期(08/14/666?不成立),也不像手机号或身份证号,陈默尝试把它当作十进制数分析:814666,除以2是407333,质因数分解后发现它等于2×7×11×23×23×11?不,不对,他重新计算,0814666忽略前导零是814666,质因数分解为2×7×11×23×23×11... 思路卡住。
他试着把这个数字看成十六进制:0x0814666转换成十进制是……他快速心算:0x8 = 8,0x1 = 1,0x4 = 4,0x6 = 6,0x6 = 6,0x6 = 6,但八位十六进制数需要8个字符,这里只有7个?再仔细看:cf0814666,如果cf是前缀,那么0814666是7位十六进制数,他尝试用Python跑了一下,0x814666的值是8,467,558,毫无意义。
也许它不是一个数字,而是一个代号,陈默开始搜索暗网上的历史记录,在洋葱路由的某个已失效的节点缓存里,他找到了一个被覆盖过三次的帖子,署名是“User_0814666”,只留下了一句话:“如果有一天你们发现cf0814666,请告诉我的女儿,我没有背叛。”发帖时间:十年零一个月前。
他继续深挖,通过时间戳回溯,发现这个ID和当时一起著名的“幽灵船”黑客事件有关,那个事件中,一个叫“CodeFire”的组织黑进了国际刑警的系统,删除了全球连环杀人犯的通缉数据,导致三名还在逃的罪犯逍遥法外,组织头目落网后,坚称自己是出于正义——那些被删的“罪犯”实际上是栽赃陷害的平民,但他没能拿出证据,被判终身监禁,而他留给世界的唯一线索,就是这个cf0814666。
陈默的手指微微颤抖,他意识到,这串字符可能是那个头目的私钥种子,或者是某个加密卷的密码,他尝试用各种哈希算法倒推:MD5、SHA-1、SHA-256,都得不到任何有意义的映射,直到他忽然想起,在黑客圈的古老传说中,有一种叫“镜像密码”的玩法——把字符串翻转后加上时间戳,他试着翻转:6664180fc,还是一团乱。
他揉了揉眼睛,把字符串输入到一个密码学论坛的仿真器中,忽然,一段隐藏了十年的文本在屏幕上跳了出来,那是用RSA加密的,而公钥正是cf0814666的前四位“cf08”,他不知道私钥,但论坛的仿真器里正好内置了一个当年被公开的私钥,属于某个已注销的证书机构,他按下解密键,一段话缓缓浮现:
“真正的凶手是国际刑警第三局的副局长,我手里有证据:录像、通话记录、转账流水,它们被分割成七个片段,分别存储在瑞士、巴拿马、新加坡、开曼群岛、迪拜、卢森堡和香港的保险箱里,每个保险箱的密码是各银行柜员的生日加起来再取模……我没有女儿,这句话是说给全世界听的,cf0814666,读作‘春风拂过,零八幺四,六六六’,是我和我妻子初次相遇的咖啡馆的Wi-Fi密码。”
陈默呆住了,十年时间,一个被冤枉的黑客,把真相埋在了无数层伪装之下,而他之所以能解开,只是因为那家咖啡馆的Wi-Fi密码曾经出现在他的旧手机日志里——他十年前恰好也在那里喝过咖啡。
天亮了,陈默关掉电脑,拿起电话,他的手指停在拨号键上——如果这个真相公布,会颠覆一个国际机构,会引发外交风暴,也会让那个被囚禁十年的黑客获得清白,但同样,他也会成为某些人的眼中钉。
光标在“发送”按钮上闪烁,他深吸一口气,按了下去。
窗外的晨光里,那段字符串像是有了生命,cf0814666,它既是一个密码,也是一面镜子:照出那些试图用数字掩盖丑陋的人,也照出那些用数字守护真相的灵魂。

