咖啡厅的挂钟指向七点二十。
我坐在靠窗的位置,已经等了整整二十分钟。
手机屏幕亮着,聊天界面停留在下午六点:“我六点五十准时到,蓝色港湾星巴克见。”
现在是七点二十。
发过去的“你到了吗”像石头沉进大海,连个水花都没有。
服务生第三次走过来,笑容已经有点勉强:“先生,还需要再等一会儿吗?”
“再等等。”我说。
声音有点干。
旁边那桌情侣看了我好几眼,女孩小声对男友说:“被放鸽子了吧,好可怜。”
我假装没听见。
低头看手机,朋友圈里全是周末的狂欢——聚餐、旅游、秀恩爱。
只有我,三十岁,坐在咖啡厅等一个素未谋面的相亲对象。
我妈的微信轰炸又来了:“见到人没有?人家姑娘可是刑警,条件好得很,你给我把握住!”
“还没到。”
“还没到?你是不是去晚了?我跟你说陈默,这次再不成,你姨给你介绍的那个二婚带孩子的你就去见!”
我把手机扣在桌上。
窗外的天色暗下来了,路灯一盏盏亮起。周末的街道很热闹,情侣们挽着手走过,笑声飘进来。
我看了眼手机。
七点二十五。
再等五分钟,就五分钟。
然后我就走。
这已经是今年第七次相亲了。不对,第八次。上个月那个幼儿园老师,见面就说“我彩礼要二十八万八,房子要加我名字”,饭都没吃完我就找借口溜了。
上上次是银行职员,全程在算我的公积金能贷多少款。
上上上次……
咖啡已经凉透了,表面的拉花糊成一团,像我现在的心情。
我拿起杯子,又放下。
七点二十八分。
我招手叫服务生:“买单。”
“不再等等吗?”服务生语气里带着同情。
“不等了。”
我从钱包里掏钱。
一张一百的,两张二十的,还有些零钱。这个月的工资还没发,交完房租水电,剩下的只够吃饭。
程序员。
月薪一万二。
在城里没房,老家县城有个六十平的老房子,我妈住着。
这就是我的全部条件。
我妈总说:“你王叔家儿子,初中毕业开挖掘机,去年都娶媳妇了!”
“你李婶女儿,长得还没你高呢,嫁了个公务员!”
“陈默啊,你到底要挑到什么时候?”
我不是挑。
我只是……
算了。
我把钱放在桌上,拿起搭在椅背上的外套。外套是去年双十一买的,打折款,洗得有点发白了。
刚站起身。
咖啡厅的门被猛地推开。
风铃叮叮当当地响。
一个穿警服的女人冲进来,气喘吁吁,额头上都是汗。她站在门口四处张望,目光扫了一圈,最后落在我身上。
她快步走过来。
“对不起对不起!你是陈默吗?”
我愣住了。
她穿着深蓝色的警服,肩上有一杠三星,袖口沾着点灰。头发扎成马尾,但因为跑得太急,有几缕散在脸颊边。脸很白,眼睛很大,但眼神里有种我说不出的疲惫。
“我是。”我说。
“实在抱歉!”她一边喘气一边说,“刚才突然接到紧急任务,一个抢劫案,嫌疑人抓到了,但后续手续……我真的不是故意的!”
她说话很快,像机关枪。
服务生站在旁边,有点尴尬。
我重新坐下来。
她也坐下来,把肩上的背包放到旁边椅子上。背包很大,鼓鼓囊囊的。
“你等很久了吧?”她问。
“还好。”我说。
其实等了二十五分钟。
“真的对不起。”她又说了一遍,从包里掏出纸巾擦汗,“我叫苏晓晓,刑警支队的。今天本来调休,都快出门了,队里电话来了。”
我点点头。
不知道说什么。
相亲经验告诉我,这时候应该说“没关系”“工作重要”之类的。
但我说不出口。
因为我确实介意。
我等了二十五分钟,在这二十五分钟里,我想了很多。想我为什么三十岁了还要相亲,想我妈那些话,想我银行卡的余额。
“你……要喝点什么吗?”我问。
“冰水就行。”她说。
我招手叫服务生:“一杯冰水。”
服务生走了。
气氛又尴尬起来。
她打量了我一下,眼神很快,但我感觉到了。那种打量,不是好奇,更像是……评估?
“我听介绍人说,你是程序员?”她问。
“嗯,做后端开发的。”
“工资应该挺高的吧?”
“还行。”
“有房吗?”
来了。
我深吸一口气:“没有。在攒首付。”
“哦。”她点点头,表情没什么变化。
冰水上来了,她一口气喝了半杯,然后看了眼手机。手机屏幕亮着,弹出好几条消息。
“又是队里的?”我问。
“嗯,有个材料要补。”她说着,手指飞快地打字,“稍等啊,就两分钟。”
我坐在对面,看着她打字。
她的手指很细,但骨节分明,指甲剪得很短。警服的袖子挽到小臂,手腕上戴着一块黑色的运动手表,表盘有点刮痕。
两分钟过去了。
五分钟过去了。
她还在打字。
咖啡厅里放着轻音乐,邻桌的情侣在喂对方吃蛋糕,笑声很甜。
我像个傻子一样坐着。
终于,她抬起头:“不好意思啊,工作的事。”
“理解。”我说。
“对了,你刚说你在攒首付,那打算买哪儿?”
“看情况吧,可能郊区一点。”
“郊区上班不方便吧?”
“还好,有地铁。”
“哦。”她又点头,然后看了眼时间。
这个动作我太熟悉了。
之前几次相亲,对方一看时间,就意味着“差不多了,该结束了”。
果然,她说:“那个,陈默,我其实今天来是想说清楚。我工作特别忙,经常加班,半夜出现场也是常事。谈恋爱结婚什么的……可能不太适合。”
我看着她。
“介绍人可能没跟你说清楚。”她继续说,语气很平静,像在做案情说明,“我今年二十八了,在刑警队干了六年。队里男的都把我当兄弟,我也习惯了一个人。相亲是我妈逼我来的,她总觉得女儿不嫁人就是失败。”
我点点头。
“所以……”她顿了顿,“我觉得我们可能不太合适。你条件挺好的,应该找个能顾家的姑娘。”
我笑了。
不是开心的笑,是那种“果然如此”的笑。
“我条件不好。”我说,“没房没车,工资一般,三十岁了还是个普通程序员。你妈没逼你来之前,介绍人应该把这些都跟你说了吧?”
她愣了一下。
“所以你今天来,就是为了亲自跟我说‘我们不合适’?”我问。
“我不是那个意思……”
“那你是什么意思?”
空气凝固了。
她看着我,我也看着她。她的眼神里有惊讶,可能没想到我会这么直接。
过了几秒,她叹了口气:“对不起,我说话可能有点直。但我真的没时间谈恋爱。今天这个案子,我从早上八点忙到现在,中午饭都没吃。相亲是抽空来的,但说实话,我现在脑子里全是案卷材料。”
她的疲惫是真的。
我能看出来。
黑眼圈很深,眼睛里都是红血丝。
“理解。”我又说了这个词。
然后我站起来:“那今天就到这吧。单我已经买过了,你慢慢坐。”
“等等。”她也站起来,“AA吧,我转你。”
“不用了。”
“要的。”
她掏出手机,执意要扫码。我看着她认真的表情,突然觉得很累。
不是为了相亲累。
是为了这种必须维持的礼貌,这种明明不想来却不得不来的场面,这种互相打量互相评估的荒谬感累。
扫码,收款。
她转给我六十八块钱,刚好是两杯饮料的价格。
“那我先走了。”她说,“队里还有事。”
她背起那个大背包,快步走出咖啡厅。警服在灯光下很显眼,背影挺拔,脚步很快。
门关上了。
风铃又响了一次。
我重新坐下来,看着对面那杯只喝了一半的冰水。
服务生走过来收拾,小心翼翼地问:“先生,您还需要点什么吗?”
我拿起外套,走出咖啡厅。
夜晚的风有点凉,吹在脸上,让我清醒了一点。
手机响了。
是我妈。
“怎么样怎么样?见到人没有?聊得怎么样?”
“见了。”
“然后呢?感觉怎么样?”
“她说我们不合适。”
电话那头沉默了三秒。
然后我妈的声音提高了八度:“又不合适?陈默你到底怎么回事?是不是又不会说话惹人家生气了?人家可是警察,多好的工作!你是不是又跟人家说你在攒首付买郊区房了?傻不傻啊你!”
“妈……”
“我跟你说,你姨给你介绍那个二婚的,下周末必须去见!听见没有?”
“我不去。”
“你敢不去!”我妈的声音带上了哭腔,“你是不是要气死我?你爸走得早,我辛辛苦苦把你拉扯大,就盼着你成家立业。你看看你那些同学,孩子都上幼儿园了!你呢?三十岁了连个对象都没有,我出去都没脸见人!”
这些话,我听了无数遍。
每次相亲失败,都要听一遍。
“妈,我累了,先挂了。”
“陈默!陈默!”
我挂了电话。
站在街边,点了根烟。
我不常抽烟,只有特别烦的时候才抽。烟很呛,呛得我咳嗽。
手机又震动了。
这次是微信群,家族群。
表姐发了条消息:“周末家庭聚会啊,都来都来,我老公从国外带了红酒回来~”
底下跟着一串“收到”“一定去”。
然后表姐@了我:“默默也来啊,带上女朋友
我没回。
她又发:“默默是不是又相亲去了?怎么样啊?”
我还是没回。
过了几分钟,表姐夫私聊我:“听说你今晚相亲,对方还是个女警察?可以啊默默,有长进。不过女警察脾气都大,你hold得住吗?”
我盯着屏幕,手指停在键盘上。
想回点什么。
但最后还是什么都没回。
把手机塞回口袋,烟抽完了,烟头扔进垃圾桶。
走回家吧。
租的房子离这里三公里,走回去差不多四十分钟。
也好,省了打车钱。
路上经过一个商场,门口的大屏幕上在放珠宝广告。模特穿着婚纱,笑得特别幸福。
我停下看了几秒。
然后继续往前走。
回到出租屋已经九点多了。老小区,没有电梯,爬上六楼,开门,开灯。
二十平米的开间,一张床,一个桌子,一个衣柜。
桌子上放着吃了一半的泡面,还有摊开的专业书。
我脱了外套,打开电脑。
工作群里弹出消息,甲方又改需求了,周一上班前要改完。
我回了个“收到”。
然后坐下,开始写代码。
键盘声在安静的房间里格外清晰。
写到一半,手机又响了。这次是大学同学,当年睡我上铺的兄弟。
“默默,干嘛呢?”
“加班。”
“又加班?出来喝酒啊,老地方。”
“不了,活儿没干完。”
“行吧。对了,我下个月结婚,请帖发你了啊,一定来。”
“恭喜。”
“谢谢谢谢。你呢?有情况没?”
“没。”
“抓紧啊,都三十了。”
挂了电话,我盯着屏幕。
光标一闪一闪的。
过了很久,我才继续打字。
代码一行行跳出来,像某种无声的语言。只有在这种时候,我才觉得一切是可控的。输入什么,就输出什么。逻辑清晰,没有意外。
不像生活。
生活总是乱糟糟的,充满意外。
比如相亲对象迟到二十分钟。
比如她穿着警服跑来,说抱歉,刚才突然接到紧急任务。
比如她说我们不合适。
比如我妈的哭声。
比如表姐夫的调侃。
比如同学的喜帖。
这些我都控制不了。
我能控制的,只有眼前这几行代码。
凌晨一点,我终于改完了需求。
保存,提交。
关掉电脑,去卫生间洗漱。镜子里的人脸色苍白,眼睛下面有青影。
三十岁。
看起来像三十五。
洗了把脸,躺在床上。
手机屏幕又亮了一下,是苏晓晓发来的微信好友验证。
验证消息是:“我是苏晓晓,今天真的抱歉。”
我看着那条消息。
看了很久。
然后按了拒绝。
理由?不需要理由。
就这样吧。
我关了灯,在黑暗里睁着眼。
窗外的路灯透过没拉严的窗帘缝照进来,在天花板上投下一道细细的光。
明天是周日。
但还要加班。
睡吧。
明天又是新的一天。
虽然和今天没什么不同。
我闭上眼睛,脑子里却突然闪过她穿警服的样子。
跑得气喘吁吁,额头上都是汗。
说“对不起对不起”。
眼神很疲惫,但很亮。
我翻了个身。
别想了。
但那段记忆像卡住的磁带,反复播放。
她坐下来的样子。
她擦汗的样子。
她说“我工作特别忙”的样子。
最后是她背起背包快步离开的样子。
风铃响。
我睁开眼睛,盯着天花板。
算了。
明天还得加班呢。
窗外的天色渐渐泛白,而手机屏幕在黑暗中再次亮起——这次是公司的紧急通知,要求所有项目组成员周日早上九点必须到岗,有重要客户来访。我盯着那行字,突然有种预感,这个周末,可能不会像我想象的那样平静。
周日早上七点半,闹钟响了。
我按掉,翻了个身。
脑子里像灌了铅,沉甸甸的。昨晚不知道几点才睡着,梦里全是乱七八糟的片段——我妈在哭,苏晓晓穿着警服在追什么人,表姐夫在笑。
手机又震了。
这次是工作群。
项目经理所有人:“九点前必须到公司,公安系统的客户要来视察,都穿正式点!”
我盯着“公安系统”四个字,愣了两秒。
然后爬起来。
洗漱,换衣服。衣柜里翻了一圈,找了件还算像样的衬衫,但领口有点皱。算了,就这样吧。
出门前看了眼手机。
家族群已经99+条消息了。
表姐在发聚会照片——豪华的大客厅,水晶吊灯,进口沙发。表姐夫端着红酒杯,笑得志得意满。照片里还有几个亲戚,我妈也在,坐在角落,表情有点拘谨。
表姐发语音:“大家都到了啊,就差默默了。默默你不是说加班吗?加完班过来呀,给你留了位置
底下跟着几个亲戚的调侃。
“默默是不是又去相亲了?”
“程序员加班能加多少钱啊,还是来聚会实在。”
“晓军(表姐夫)这次带回来的红酒,一瓶好几千呢!”
退出群聊,锁屏。
下楼,挤地铁。周日早上的地铁人不多,但还是没座位。我抓着扶手,看窗外飞驰而过的广告牌。
脑子里又闪过苏晓晓。
公安系统的客户。
不会那么巧吧。
应该不会。
到了公司,果然一片忙乱。前台小姑娘在擦桌子,项目经理在吼人:“把会议室收拾出来!咖啡机洗干净!投影仪调试好!”
我走到工位,开机。
旁边的同事小李凑过来,压低声音:“听说今天来的是市公安局科技信息化处的,还有刑警支队的。咱们那个公安网络安全项目,能不能拿下就看今天了。”
“你准备得怎么样?”小李问,“听说你负责核心模块的演示?”
“还行。”
其实根本没准备好。
昨晚失眠,今天状态差得要命。
九点整,前台小姑娘跑过来:“来了来了!”
所有人都站起来。
走廊里传来脚步声,还有说话声。项目经理带着一群人走进来,最前面的是个四十多岁的中年男人,穿着夹克,表情严肃。
后面跟着几个人。
我的目光停在第三个人身上。
深蓝色的警服,马尾辫,素颜。
苏晓晓。
她跟在领导身后,手里拿着笔记本,表情专注。目光扫过办公区,扫过我这边,停顿了不到半秒,然后移开了。
没认出我。
或者认出来了,但假装没看见。
项目经理开始介绍公司情况,领着他们参观。我站在工位旁,看着他们走过来。
越来越近。
我能闻到她身上的味道,淡淡的洗衣液香,还有点……消毒水味?
她今天没穿警服外套,只穿了警用衬衫,袖子挽到手肘。手臂线条很清晰,不是那种纤细的,而是有肌肉线条的。
她经过我工位时,脚步没停。
但眼角的余光,我确定她看了我一眼。
参观结束,去会议室开会。我们项目组几个人也跟进去,我坐在靠门的位置。
苏晓晓坐在对面,隔着一张长桌。
她打开笔记本,拿出笔,全程没看我。
领导开始讲话,讲公安系统网络安全的重要性,讲现在的威胁态势。我听着,但注意力没法集中。
她今天把头发扎得更紧了,露出完整的脸型。没化妆,但皮肤很白。黑眼圈还是很重,看来昨晚又没睡好。
“小苏,你补充一下刑警支队那边的需求。”领导说。
她抬起头。
目光扫过全场,然后落在我身上。
这次是对视。
她的眼神很平静,像看一个陌生人。
“刑警支队的系统,主要问题是数据孤岛。”她的声音很清晰,语速不快不慢,“各个大队、中队的案件数据不互通,调取困难。另外,移动警务终端的接入安全也是个薄弱环节。去年发生过一起警务通丢失导致信息泄露的事件。”
她说话的时候,手指在桌面上轻轻敲着。
节奏稳定。
像在敲代码。
“所以我们需要一个既能打通数据壁垒,又能保证接入安全的方案。”她说完,看向项目经理,“听说贵公司在这方面有经验?”
项目经理立刻接话:“有的有的!我们给好几个省市公安都做过类似项目。小陈,”他看向我,“你给领导们演示一下咱们的核心模块。”
我站起来。
腿有点软。
走到投影仪前,插上盘,打开
第一页是我的名字和职位。
我感觉到苏晓晓的目光。
深吸一口气,开始讲。
讲数据接口的设计,讲加密传输的协议,讲移动端的安全验证机制。一开始声音有点抖,但讲到技术细节,慢慢就顺畅了。
这是我的领域。
在这里,我不需要担心没房没车,不需要担心三十岁还没结婚。
在这里,我就是专家。
演示到一半,苏晓晓突然举手:“打断一下。”
我停下来。
“陈工,你刚才说采用国密算法进行端到端加密,我想问一下,这个方案的性能损耗有多大?我们现场办案的时候,有时需要在几秒钟内调取嫌疑人信息,如果因为加密导致延迟,会影响办案效率。”
问题很专业。
我调出另一页:“这是性能测试数据。在标准网络环境下,加解密延迟在200毫秒以内,基本无感。即使在弱网环境……”
我讲得很详细。
她听得很认真,时不时在笔记本上记几笔。
演示结束,领导带头鼓掌。
“不错,很专业。”领导说,“小苏,你觉得呢?”
苏晓晓合上笔记本:“技术方案我认可。但具体实施细节,还需要进一步对接。”
“那是自然。”项目经理笑着说,“后续就让小陈跟苏警官对接,他是我们这最好的技术骨干。”
会议结束,领导们先走。
苏晓晓留在后面,跟项目经理又聊了几句。我收拾东西,准备回工位。
“陈工。”
我转身。
她走过来,手里拿着名片:“这是我的联系方式,后续技术对接就麻烦你了。”
我接过名片。
苏晓晓,刑警支队,三级警督。
“好。”我说。
她看着我,似乎想说什么,但最终还是只点了点头,转身走了。
我捏着那张名片,站在原地。
小李凑过来,挤眉弄眼:“可以啊陈哥,跟女警花对接工作,艳福不浅。”
“别胡说。”
“我可看见了,人家刚才一直看你。”
“那是听我演示。”
“得了吧。”小李拍拍我的肩,“不过说真的,这女警官气场太强了,一般人不住。”
回到工位,把名片放在键盘旁边。
盯着看了几秒。
然后打开微信,搜索手机号。
弹出一个头像——不是自拍,是一张警犬的照片。昵称就是本名:苏晓晓。
我发送了好友申请。
备注:陈默,技术对接。
几乎是秒通过。
她发来第一条消息:“陈工,今天辛苦了。周一我把详细需求文档发你。”
“好的。”
对话结束。
就这么简单。
我放下手机,靠在椅背上。
脑子里有点乱。
今天这场会议,反转来得太突然。昨天我还是那个被她婉拒的相亲对象,今天就变成了她需要对接的技术专家。
她看我的眼神,从昨天的“评估”,变成了今天的“专业认可”。
虽然还是没什么温度。
但至少,不再是那种“我们不合适”的疏离。
家族群。
表姐发了条新消息:所有人 今晚聚会继续啊!昨天没来的今天补上!特别是陈默,今晚必须来,你妈都发话了!”
底下跟着一堆+1”。
还有我妈私聊我:“你今天必须来!你姨也来了,要给你介绍那个二婚的,你都三十了不能再挑了!”
我盯着屏幕。
手指在键盘上悬了半天。
最后回:“加班,去不了。”
“加什么班!周末还加班?你是不是不想来?”
“真的有项目。”
“什么项目比你终身大事还重要?”
我没再回。
关机,下班。
走出公司大楼,天已经快黑了。周末的晚上,街上热闹得很。情侣们牵着手,一家人推着婴儿车,朋友成群结队去吃饭。
我站在路边,不知道该去哪。
回家?那个二十平的开间?
还是去聚会?听亲戚们唠叨,看表姐夫炫耀,然后被介绍给一个二婚带孩子的女人?
正想着,手机响了。
是苏晓晓。
我愣了下,接起来。
“陈工,抱歉打扰你休息。”她的声音从听筒里传出来,有点急,“今天演示的那个移动端安全模块,我这边有个突发情况,可能需要紧急讨论。”
“现在?”
“对。我们现在有个案子,需要用到类似的加密传输功能,但现有系统不支持。能不能请你……过来一趟?”
“去哪?”
“刑警支队。地址我发你。”
挂断电话,微信弹出一个定位。
我盯着那个地址。
犹豫了三秒。
然后拦了辆出租车。
“师傅,去市公安局刑警支队。”
出租车司机从后视镜看了我一眼:“去那儿干嘛?犯事了?”
“不是,工作。”
车开了。
我靠在座椅上,看窗外掠过的夜景。
脑子里只有一个念头:这都什么事儿啊。
刑警支队在城西,离公司挺远。路上有点堵,开了四十多分钟才到。
下车,面前是一栋老楼,门口挂着白底黑字的牌子。院里停着几辆警车,闪着红蓝灯。
我走到门口岗亭。
“找谁?”
“苏晓晓警官。”
岗亭里的小警察打了电话,然后让我登记身份证,放我进去。
楼里很安静,但空气中有种紧绷感。走廊两侧都是办公室,有些门开着,能看到里面堆满文件的桌子和熬夜加班的人。
苏晓晓在二楼最里面的办公室。
门开着。
我走到门口,看到她正对着电脑屏幕,眉头紧皱。办公室里还有两个男警察,一个在打电话,一个在翻卷宗。
“苏警官。”我敲了敲门。
她抬起头,看见我,立刻站起来:“陈工,这么快。进来坐。”
办公室不大,四张桌子挤在一起。她的桌子最乱,堆着好几摞文件夹,还有吃完没扔的泡面桶。
“情况是这样。”她没寒暄,直接进入正题,“我们正在追一个跨省诈骗团伙,主犯抓到了,但手机加密了。技术队尝试破解,但用的是新型加密算法,常规方法没用。”
她调出电脑屏幕上的代码:“这是我们从嫌疑人服务器里提取的加密模块片段,你看看。”
我凑过去看。
屏幕上是密密麻麻的十六进制代码。
“这种算法……”我仔细看了几行,“不是标准的国密算法,是自研的。但底层逻辑应该类似,都是基于非对称加密和哈希链。”
“能破吗?”
“需要时间。”我说,“但如果是实时通讯加密,通常会有密钥交换的过程。如果能拿到密钥交换时的流量数据……”
“有。”旁边一个男警察插话,“我们截获了他们服务器和客户端的通讯包,但都是加密的。”
“给我看看。”
男警察递过来一个U盘。
我插到电脑上,打开抓包文件。几千条数据包,全是密文。
办公室里很安静,只有键盘敲击声。
另外两个警察去忙别的了,只剩下我和苏晓晓。
她拉了把椅子坐在我旁边,很近。我能闻到她头发上淡淡的洗发水味,还有警服布料特有的味道。
“这个端口号,”我指着屏幕,“是用于密钥交换的。虽然内容加密了,但协议握手的过程可能留下漏洞。”
我打开另一个工具,开始解析协议。
时间一分一秒过去。
窗外天全黑了,办公室里只开了一盏台灯。
苏晓晓一直坐在旁边,没说话。偶尔起身去倒水,给我也倒了一杯。
“谢谢。”我说。
“应该我谢你。”她看着屏幕,眼神专注,“这个案子拖了三个月了,涉案金额上千万。受害人多是老年人,有的连养老金都被骗光了。”
她的声音很低,带着疲惫,但很坚定。
我看了她一眼。
台灯的光照在她侧脸上,勾勒出清晰的轮廓。睫毛很长,在眼下投出浅浅的阴影。
“快好了。”我说。
凌晨一点半。
我找到了漏洞。
“这里。”我指着屏幕上的一个字段,“他们在密钥交换时,用了时间戳作为随机数种子,但时间戳的生成方式有规律。只要能拿到服务器时间……”
“我们有服务器镜像。”
“那就好办了。”
我写了个脚本,导入镜像数据,运行。
进度条一点点往前走。
苏晓晓屏住呼吸。
办公室里安静得能听见电脑风扇的嗡嗡声。
百分之八十。
百分之九十。
百分之百。
脚本输出了一串密钥。
“成了。”我说。
苏晓晓眼睛一亮,立刻喊同事:“老张!密钥拿到了!”
那个叫老张的警察冲过来,接过密钥,导入解密工具。
加密的文件一个个被打开。
聊天记录,转账信息,受害者名单……
“太好了!”老张一拍桌子,“这下证据链完整了!”
苏晓晓长长舒了口气。
然后转向我:“陈工,真的太感谢了。要不是你……”
“本职工作。”我说。
她看着我,突然笑了。
不是那种礼貌的笑,是真心的,如释重负的笑。
眼睛弯起来,嘴角上扬。
我第一次看见她笑。
原来她笑起来,左脸颊有个很浅的梨涡。
“我请你吃夜宵。”她说,“这个点食堂应该还有面条。”
“不用了,我……”
“必须请。”她不由分说,“你帮了我们大忙。”
刑警支队的食堂在地下室,这个点确实还有师傅值班。两碗牛肉面,加蛋,热气腾腾。
我们坐在靠窗的位置。
窗外是深夜空荡荡的院子,只有警车的灯偶尔闪烁。
“今天真是……”她吃了口面,摇摇头,“从早上忙到现在。”
“经常这样?”
“嗯,特别是大案要案的时候。”她喝了口汤,“所以昨天相亲,我说我没时间谈恋爱,不是敷衍你,是真的。”
我点点头。
“昨天……”她顿了顿,“我态度可能不太好。其实我不是针对你,只是……那段时间压力太大了。手上三个案子,每天睡不到四小时。我妈又天天催婚,我一烦,说话就冲。”
“理解。”
“但你今天,”她抬起头看我,“让我很意外。技术那么好,解决问题那么冷静。跟我们技术队那些专家比,一点都不差。”
“我就是干这个的。”
“不一样。”她认真地说,“有些专家讲理论一套一套的,真遇到实际问题就抓瞎。你是真的能解决问题。”
我没说话,低头吃面。
面很好吃,汤很浓。
“对了,”她突然想起什么,“今天在会上,我没认出你。后来才想起来,你是我昨天相亲那个……陈默。”
“嗯。”
“挺巧的。”
“是挺巧。”
沉默了几秒。
她又说:“你昨天拒绝我好友申请,是因为生气吗?”
我差点呛到。
“不是。”我说,“只是觉得……没必要。”
“哦。”
气氛又有点尴尬。
“其实,”她放下筷子,“我今天一直在想,昨天我对你说的那些话,挺过分的。我工作忙是我的问题,不应该用那种方式拒绝你。就好像……好像你的时间不值钱似的。”
她看着我,眼神很真诚:“对不起。”
我没想到她会道歉。
愣了两秒。
“没事。”我说,“都过去了。”
“那……”她犹豫了一下,“我们现在算是……同事?”
“算吧。”
“好。”她又笑了,“那以后技术上的事,就麻烦陈工多指教了。”
“嗯。”
吃完面,她送我到大门口。
夜深了,风很凉。
“你怎么回去?”她问。
“打车。”
“这个点不好打,我开车送你吧。”
“不用,你还要加班吧?”
“没事,送你一趟的时间还是有的。”
她走到停车场,开出一辆白色SUV,不是警车,是私家车。
我坐上副驾。
车里很干净,没什么装饰。后座上扔着一件警用外套,还有几瓶矿泉水。
“住哪?”她问。
我报了地址。
车开了。
路上没什么车,开得很顺畅。电台放着深夜音乐,轻柔的钢琴曲。
“你住的那儿,离支队挺远的。”她说。
“嗯,房租便宜。”
“程序员不是工资挺高吗?”
“攒首付。”
她又看了我一眼,没再问。
快到小区时,她突然说:“下周我们可能要开项目协调会,你这边时间方便吗?”
“方便。”
“好,那我到时候联系你。”
车停在小区门口。
我下车:“谢谢。”
“应该我谢你。”她摇下车窗,“今晚真的帮大忙了。那个案子破了,能帮很多老人追回损失。”
“那就好。”
“那……周一联系?”
“好。”
她点点头,开车走了。
我站在原地,看着车尾灯消失在街角。
夜风很凉。
但我心里有点暖。
这种被需要的感觉,很久没有过了。
不是作为相亲对象被需要。
而是作为专业人士被需要。
上楼,开门。
屋里还是老样子。
但心情不一样了。
我洗了澡,躺在床上,看着天花板。
手机亮了一下。
是苏晓晓发来的消息:“安全到家了吗?”
“到了。”
“那就好。早点休息,晚安。”
“晚安。”
我盯着那两个字。
看了很久。
然后关灯睡觉。
这次睡得很快,很沉。
没有做梦。
周一一早,我刚到公司,项目经理就一脸凝重地把我叫进办公室。他说公安系统的项目出了变数,有个竞争对手公司突然介入,报价比我们低20%。而对方的技术负责人,竟然是我最不想见到的那个人——我的表姐夫,赵晓军。
周一早上七点五十,我挤进地铁。
车厢里人贴人,空气混浊。我抓着扶手,看着窗外飞速掠过的广告牌,脑子里还在想昨晚的事。
苏晓晓。
她道歉的样子。
她说“你让我很意外”的样子。
她说“晚安”的样子。
手机震了一下。
是项目经理老周:“到公司立刻来我办公室。”
八个字,没加感叹号,但感觉不妙。
我回了个“好”。
出地铁,上楼,打卡。工位上已经坐了几个人,都在窃窃私语。
小李看见我,立刻凑过来:“陈哥,出事了。”
“什么事?”
“公安那个项目,黄了。”
我手一抖,咖啡差点洒出来。
“怎么可能?上周五不是还说稳了吗?”
“来了个搅局的。”小李压低声音,“‘智创科技’,你听过没?专门做政府项目的。他们老板跟公安局某个领导是亲戚,直接把报价压到咱们的八成。”
智创科技。
我听过。
去年跟我们抢过银行的项目,手段不太干净。
“老周正发火呢。”小李使了个眼色,“你小心点。”
我放下包,走到老周办公室门口。
敲了敲门。
“进。”
推门进去,老周坐在办公桌后面,脸色铁青。对面沙发上坐着两个人,一男一女。男的我认识,是销售总监。女的没见过,应该是新来的项目经理助理。
“陈默,坐。”老周指了指空椅子。
我坐下。
“公安的项目,情况有变。”老周开门见山,“智创科技介入,报价比我们低20%。甲方那边……态度有点松动。”
销售总监接着说:“我打听过了,智创的老板赵晓军,他小舅子在市局当处长。关系硬得很。”
赵晓军。
这三个字像针一样扎进我耳朵里。
“赵晓军?”我重复了一遍。
“你认识?”老周看我。
“……认识。”
是我表姐夫。
“认识就好办了。”老周眼睛一亮,“能不能走走关系?他们报价低,但技术不一定比我们强。如果能从技术层面说服甲方……”
“我和他不熟。”我说。
“不熟也得熟!”老周拍桌子,“这个项目公司准备了三个月,前期投入多少你清楚!要是丢了,今年年终奖大家都别想拿!”
办公室里一片死寂。
新来的助理吓得不敢喘气。
“陈默,”老周缓了口气,“我知道你技术好。但光技术好没用,这年头做生意,讲的是关系。你跟赵晓军既然认识,哪怕只是点头之交,也该试试。”
我沉默。
试什么?
去求我表姐夫,让他把项目让给我们?
想想昨天家族群里那些消息,想想他发的那句“程序员加班能加多少钱”。
想想每次家庭聚会,他拍着我肩膀说“默默啊,要不来姐夫公司,给你安排个轻松点的活儿”。
“我试试。”我说。
声音干巴巴的。
“不是试试,是必须拿下!”老周站起来,“我给你一周时间。一周后甲方要开最终评审会,到时候智创和我们同时演示。谁的技术方案好,谁的价格低,谁就能拿到合同。”
“明白了。”
走出办公室,手心全是汗。
小李凑过来:“怎么样?”
“让我去搞定赵晓军。”
“赵晓军?智创老板?你认识他?”
“……算认识。”
“那好啊!有熟人好办事!”
我没说话。
坐回工位,盯着电脑屏幕发呆。
手机震了。
是苏晓晓发来的需求文档。
“陈工,这是详细需求。另外,项目协调会定在周三上午十点,地点在市局三楼会议室。附件是参会人员名单,你看一下。”
我点开附件。
参会人员名单里,甲方代表:苏晓晓(刑警支队),李处长(科技信息化处),王副局长(分管刑侦)……
乙方代表:我,老周。
还有一行小字:备选合作方代表:赵晓军(智创科技)。
果然。
我关掉文档,给她回:“收到。”
想了想,又加了一句:“周三见。”
她回得很快:“周三见。”
三个字,一个句号。
看不出情绪。
我放下手机,打开需求文档。
一百多页,密密麻麻。从系统架构到接口规范,从安全标准到运维要求。苏晓晓做得非常细,连每个字段的类型、长度、校验规则都标清楚了。
专业。
认真。
和相亲时那个疲惫敷衍的她,判若两人。
我看了两页,手机又震了。
这次是我妈。
“默默,今晚来家里吃饭!你姨和表姐都来,有事跟你说!”
“加班。”
“加什么班!必须来!你姨给你介绍的那个二婚的,人家同意见面了!今晚就来家里吃饭,你看看人!”
我盯着屏幕,手指停在键盘上。
想回“不去”。
但脑子里闪过老周那张铁青的脸。
“知道了。”我回。
“六点前到!穿正式点!”
我没再回。
关掉微信,继续看文档。
但一个字也看不进去。
下午三点,老周又把我叫进去。
“跟赵晓军联系了吗?”
“……还没。”
“现在联系!”老周把一张名片拍在桌上,“这是他的联系方式。陈默,我不管你们什么关系,这个项目必须拿下。你技术好,公司知道。但光技术好,在这个行业混不下去。你得学会做人,学会搞关系。”
我拿起名片。
烫金的,很精致。
赵晓军,智创科技有限公司,总经理。
下面还有一行小字:市政协委员,青年企业家协会副会长。
我把名片塞进口袋。
“我今晚约他。”
“好!”老周脸色终于缓和了点,“好好谈,姿态放低点。哪怕让他分我们一杯羹,也比整个项目丢了强。”
走出办公室,我去楼梯间抽了根烟。
烟雾缭绕中,我想起很多事。
想起小时候,赵晓军来我家拜年,穿一身名牌,开一辆宝马。给我妈包了个大红包,说“阿姨,默默以后找工作可以找我”。
想起去年春节,家庭聚会上,他当着一屋子亲戚的面说:“程序员这行,三十五岁就失业。默默,你得早做打算。”
想起他在家族群里发的那些红酒照片,海岛旅游照片,新买的别墅照片。
而我妈每次看完,都会叹气:“你看看人家晓军……”
烟抽完了。
我回到工位,拿起手机,拨了名片上的号码。
响了三声,接通。
“喂,哪位?”赵晓军的声音,带着那种成功人士特有的腔调。
“姐夫,是我,陈默。”
电话那头沉默了两秒。
然后笑了:“默默啊!怎么想起给姐夫打电话了?”
“有点事想跟您聊聊。”
“什么事?你说。”
“关于公安系统网络安全项目的事。”
更长久的沉默。
然后他说:“哦,那个项目啊。你也知道,我们公司也在竞标。”
“我知道。”
“那你还找我聊什么?”他的语气变了,带着点调侃,“想让我让给你?”
“……想跟您合作。”
“合作?”他笑出声,“默默,不是姐夫说你。你们那个小公司,要技术没技术,要关系没关系,拿什么跟我合作?”
我握紧手机。
指节发白。
“我们技术不差。”我说,“上周的演示,甲方很认可。”
“演示有什么用?”他不屑,“最后看的是价格,是关系。我小舅子在市局当处长,这个项目早就内定给我们了。你们啊,陪跑而已。”
“姐夫……”
“行了行了。”他打断我,“我还有个会,先挂了。对了,今晚家庭聚会,你来不来?你妈说你加班,加什么班啊,来见见你姨介绍的对象。人家虽然离过婚,但带的是女儿,压力小……”
我挂了电话。
挂得很用力。
手在抖。
不是因为生气。
是因为无力。
那种无论怎么努力,都抵不过人家一句话的无力感。
小李走过来,看我脸色不对:“陈哥,没事吧?”
“没事。”
“赵晓军那边……”
“没谈拢。”
小李叹了口气,拍拍我的肩:“正常。这些人,眼里只有利益。”
是啊。
只有利益。
我坐在工位前,看着电脑屏幕。
需求文档打开着,苏晓晓的名字在页眉处。
苏晓晓。
她知不知道,这个项目可能已经内定了?
她知不知道,她认真准备的这些需求,可能最后会交给一个靠关系中标的公司?
她知不知道,我昨晚熬到凌晨帮她破案,今天却要面对这种破事?
不知道。
也不需要知道。
下班时间到了。
我收拾东西,准备去我妈家。
电梯里遇到老周。
“联系赵晓军了?”他问。
“联系了。”
“怎么样?”
“他说项目内定给他们了。”
老周脸色一沉:“他真这么说?”
“嗯。”
“妈的。”老周难得爆粗口,“这帮孙子。”
电梯到了一楼。
我们走出去,老周突然说:“陈默,周三的演示,你好好准备。就算最后拿不到,也要让甲方看到我们的实力。不能让智创那种公司太得意。”
“明白。”
“还有,”他顿了顿,“你跟刑警支队那个苏警官,关系怎么样?”
“……就是工作关系。”
“多接触接触。”老周意味深长,“她如果能帮我们说句话,比什么都管用。”
我没接话。
走出公司大楼,天已经快黑了。
我坐公交去我妈家。
老小区,没电梯,爬上五楼。门虚掩着,里面传出笑声。
推门进去。
客厅里坐满了人。
表姐,表姐夫赵晓军,我妈,我姨,还有个陌生的女人,三十多岁的样子,穿着碎花裙,烫着卷发。
“默默来了!”表姐先看见我,“快进来快进来!”
所有人的目光都投过来。
赵晓军坐在沙发正中间,翘着二郎腿,手里端着茶杯。看见我,笑了笑:“哟,大忙人终于来了。”
我点点头:“姐夫。”
“过来坐。”我妈招手,指了指陌生女人旁边的位置,“这是你王姨的女儿,叫丽丽。丽丽,这是我儿子陈默。”
那个女人抬头看我,上下打量了一下。
然后笑了笑:“你好。”
“你好。”
我坐下。
气氛有点尴尬。
表姐打破沉默:“丽丽是小学老师,教音乐的。人特别温柔,还会弹钢琴呢。”
“嗯。”
“陈默是程序员,工资挺高的。”我妈赶紧补充。
“程序员好啊。”丽丽说,“就是听说经常加班?”
“嗯。”
“加班对身体不好。”她说,“我前夫就是搞IT的,天天加班,最后胃出血住院。”
我没说话。
赵晓军插话:“默默他们公司最近在竞标一个公安项目,也挺忙的。”
“公安项目?”丽丽眼睛一亮,“那挺厉害啊。”
“厉害什么。”赵晓军笑了,“最后还不一定是他们的。”
空气凝固了一下。
我妈脸色变了。
我姨打圆场:“吃饭吃饭,菜都凉了。”
一桌人移到饭厅。
桌子不大,挤得满满当当。赵晓军坐在主位,表姐坐他旁边。我和丽丽坐对面,我妈和我姨坐两边。
菜很丰盛,但我没胃口。
“默默,给丽丽夹菜啊。”我妈在桌下踢我。
我夹了块排骨,放到丽丽碗里。
“谢谢。”她说,但没吃。
“丽丽,你女儿多大了?”表姐问。
“七岁,上二年级了。”
“女儿好啊,贴心。默默也喜欢女儿,对吧默默?”
我没吭声。
赵晓军端起酒杯:“来,我敬大家一杯。感谢阿姨做这么丰盛的菜。”
所有人都举杯。
我也举了。
“默默啊,”赵晓军看着我,“今天白天你给我打电话,说想合作。我后来想了想,也不是不行。”
所有人都看着我。
“你们公司技术还是可以的。”他晃着酒杯,“要不这样,这个项目我们智创拿下来,分包一部分给你们做。价钱嘛,肯定比你们自己做低点,但至少有的赚。”
我没说话。
“怎么样?”他问。
“不用了。”我说。
桌子突然安静了。
“不用?”赵晓军挑眉,“默默,姐夫可是给你机会。你们那个小公司,真以为能竞争得过我们?”
“竞争不过也要竞争。”
“呵。”他笑了,转向我妈,“阿姨,您看您儿子,脾气还挺倔。”
我妈脸都白了:“默默,怎么跟你姐夫说话呢!”
“我说的是实话。”我放下筷子,“项目还没定,谁都有机会。”
“机会?”赵晓军放下酒杯,“行,那我告诉你。这个项目,我已经跟李处长吃过三次饭了。王副局长是我老同学。市局主管这个项目的领导,我全都打点过了。你告诉我,你的机会在哪?”
我看着他。
他也看着我。
眼神里满是优越,和嘲讽。
“我的机会在技术。”我说。
“技术?”他笑出声,“默默,你太天真了。在这个圈子混了这么多年,你还相信技术决定一切?”
“我相信。”
“那你慢慢相信。”他耸耸肩,“周三评审会,咱们见分晓。”
气氛降到冰点。
丽丽小声说:“我去下洗手间。”
她起身走了。
表姐瞪了我一眼:“默默,你姐夫好心帮你,你怎么这么不知好歹!”
“帮我?”我看着赵晓军,“他是想吞掉整个项目,然后施舍点残羹剩饭给我们。”
“你!”
“够了!”我妈突然站起来,眼睛红了,“陈默,你给我闭嘴!”
我闭嘴了。
看着她红红的眼睛,看着她因为生气而颤抖的手。
突然觉得很累。
“妈,我还有点事,先走了。”
“你去哪!”
“加班。”
我起身,拿起外套。
赵晓军靠在椅背上,似笑非笑:“慢走啊默默。周三见。”
我没理他。
推门出去。
楼道里很暗,声控灯坏了。我摸着黑下楼,脚步很重。
走到三楼,听见后面有人喊我。
“陈默。”
是丽丽。
她追下来,站在楼梯拐角:“你等等。”
我停下。
“刚才……不好意思。”她说,“你姐夫说话是有点过分。”
“没事。”
“其实,”她顿了顿,“我来之前不知道你跟你姐夫的关系。是我妈逼我来的,说我离了婚,还带个孩子,有人要就不错了。”
我没说话。
“但我觉得你挺好的。”她说,“至少……有骨气。”
我看着她。
昏黄的灯光下,她的表情很认真。
“谢谢。”我说。
“那个……我们还能联系吗?”
我想了想。
“不了吧。”我说,“我工作忙,没时间谈恋爱。而且……”
而且我心里,好像有个人了。
虽然只是工作关系。
虽然可能没结果。
“我明白了。”她笑了笑,“那……再见。”
“再见。”
她转身上楼。
我继续下楼。
走出单元门,夜风一吹,脑子清醒了点。
手机震了。
是苏晓晓。
“陈工,需求文档第三十七页,关于数据同步机制的部分,我有个问题想请教。”
我站在路灯下,点开文档。
第三十七页。
密密麻麻的文字和流程图。
我回:“什么问题?”
她发来一段语音。
声音有点疲惫,但很清晰:“就是这里,跨层级数据同步的权限控制。如果大队和中队同时修改同一份数据,怎么解决冲突?”
我按下语音键:“可以用乐观锁机制,加版本号控制。谁先提交谁生效,后提交的提示冲突,人工介入处理。”
发过去。
几秒后,她回:“明白了。但这样会不会增加基层的工作量?”
“可以在界面做优化,冲突提示做明显点,一键跳转到对比页面。”
“好。”
“还在加班?”我问。
“嗯,刚开完会。你呢?”
“刚吃完饭。”
“哦。”
沉默了几秒。
她又发来一条:“周三的评审会,你准备好了吗?”
我盯着这句话。
周三。
和赵晓军正面交锋。
“准备好了。”我回。
“那就好。”她说,“我相信你们的技术方案。”
我相信你们的技术方案。
七个字。
像一股暖流,突然涌进心里。
“谢谢。”我说。
“不客气。早点休息,晚安。”
“晚安。”
我放下手机,深吸一口气。
夜风吹在脸上,凉凉的。
但心里那团火,又燃起来了。
赵晓军说,技术决定不了一切。
也许他是对的。
但至少,我要让他知道,技术不应该被轻视。
至少,我要让苏晓晓看到,她没信错人。
至少,我要让我妈知道,她儿子不是废物。
至少。
我抬起头,看着夜空。
没有星星。
但有一轮弯月,很亮。
周三上午九点半,我提前半小时到了市局。会议室门口,赵晓军已经在了,穿着一身定制西装,正和几个人谈笑风生。看见我,他笑着走过来,拍了拍我的肩:“默默,来了啊。今天好好表现,别紧张。”语气轻松得像已经赢了这场仗。而此刻,会议室里,苏晓晓正坐在主位,低头看着手里的评审表,眉头微皱。
周三上午九点半,市局大院。
我把车停好,拎着电脑包下车。早晨的阳光有点刺眼,我眯起眼,看向那栋灰色的办公楼。
三楼的会议室窗户开着,白色窗帘被风吹得轻轻晃动。
手心有点出汗。
不是紧张。
是那种上战场前的亢奋。
走进大楼,登记,上电梯。电梯门开,三楼走廊里已经站了好几个人。都是西装革履的,有我们公司的销售团队,也有智创的人。
赵晓军站在人群中央,一身深灰色定制西装,皮鞋擦得锃亮。他正和一个中年男人说话,声音洪亮,笑容满面。
看见我,他挥了挥手。
“默默!”他走过来,拍了拍我的肩,“来了啊。今天好好表现,别紧张。”
他的手很重,拍得我肩膀一沉。
“嗯。”我说。
“这位是市局科技处的张科长。”赵晓军介绍旁边的中年男人,“张科,这是我表弟陈默,他们公司也来竞标。”
张科长打量了我一眼,点点头:“陈工是吧?听说你技术不错。”
“张科过奖了。”
“好好表现。”张科长说完,转身走了。
赵晓军凑近我,压低声音:“看见没?张科是我的人。今天的评审,技术分占40%,商务分占60%。商务分里,关系占大头。”
我没说话。
“不过你也别灰心。”他笑了笑,“就算项目我们拿了,刚才说的分包的事,还算数。”
“不用了。”我说。
他挑眉:“真不用?”
“真不用。”
“行,有骨气。”他收回手,整了整西装领子,“那我先进去了,跟几位领导打个招呼。”
他转身走进会议室。
背影挺拔,步伐自信。
我站在原地,深吸一口气。
“陈哥。”小李从后面走过来,手里拿着一叠材料,“都准备好了。演示文档最后检查了三遍,没问题。”
“嗯。”
“老周在楼下停车,马上上来。”小李看了看会议室方向,压低声音,“我刚听说,智创那边把报价又降了五个点。现在已经比我们低25%了。”
“知道了。”
“还有……”小李犹豫了一下,“我早上在楼下看见刑警支队的苏警官了。她好像脸色不太好,急匆匆上楼了。”
我看了眼会议室。
透过玻璃门,能看到里面已经坐了一半的人。长条形会议桌,甲方坐在一侧,乙方坐在对面。苏晓晓坐在靠中间的位置,穿着警用衬衫,正在低头看手里的文件。
她今天把头发扎成了低马尾,戴了副眼镜。
看起来很严肃。
九点五十,老周上来了,一身深蓝色西装,领带打得紧紧的。
“都准备好了?”他问。
“好了。”
“走,进去。”
我们推门进去。
会议室里一下子安静下来。
所有人的目光都投过来。
我扫了一眼。甲方那边坐了七八个人,除了苏晓晓和张科长,还有几个不认识的中年男人,应该是局里的领导。主位上坐着一个五十多岁、头发花白的男人,气场很强,应该是王副局长。
乙方这边,智创的人已经坐在左边了。赵晓军坐在最前面,旁边是他的技术总监,一个戴眼镜的瘦高个。
我们坐在右边。
刚落座,对面的苏晓晓抬起头。
她看了我一眼。
眼神很平静,像看一个普通的乙方代表。
然后低下头,继续看文件。
“人都到齐了,那我们开始吧。”王副局长开口,声音低沉,“今天的评审会,主要是对两家公司的技术方案和商务报价进行综合评估。老李,你主持一下。”
坐在王副局长旁边的李处长点点头:“好的。按照流程,先请两家公司做技术方案陈述。智创先来吧。”
赵晓军站起来,走到投影仪前。
他今天准备了PPT,很精美,动画效果很多。
“各位领导好,我是智创科技的赵晓军。”他声音洪亮,自信满满,“我们为市局公安系统量身定制了一套完整的网络安全解决方案……”
他讲了二十分钟。
从公司资质讲到成功案例,从技术架构讲到实施规划。讲得很好,很流畅,显然是练过很多遍。
但全是套话。
上那些架构图,都是从标准模板改的。那些技术名词,都是行业里用烂了的。
讲完后,李处长提问:“你们这个方案,怎么解决移动警务终端的安全接入问题?”
赵晓军看向技术总监。
技术总监站起来,推了推眼镜:“我们采用的是VPN加密隧道技术,配合动态令牌认证……”
他说了一堆专业术语。
但核心思路,还是老一套。
苏晓晓突然打断:“在弱网环境下的延迟问题,你们怎么解决?我们刑警经常在野外、地下室办案,信号很差。”
技术总监卡壳了。
“这个……我们建议干警尽量在信号好的地方使用……”
“嫌疑人会等你找个信号好的地方再作案吗?”苏晓晓语气很冷。
会议室里一片安静。
技术总监额头冒汗。
赵晓军赶紧接话:“苏警官说得对,这个我们回去再优化……”
“下一个。”李处长说。
该我们了。
我站起来,走到投影仪前。
插U盘的时候,手有点抖。
但一打开,一看到那些我熬了无数个夜做出来的架构图,心就静下来了。
“各位领导好,我是陈默。”我开口,声音比想象中稳,“我们公司专注于公安行业安全解决方案,针对市局的需求,我们提出了以下方案……”
我开始讲。
不讲公司资质,不讲成功案例。
只讲技术。
讲数据孤岛问题,我拿出了苏晓晓需求文档里提到的具体场景,给出了三种解决方案,并分析了各自的优缺点。
讲移动终端安全,我直接演示了一个模拟程序——在信号强度只有一格的环境下,我们的加密传输延迟依然控制在300毫秒以内。
讲权限管理,我设计了一套基于角色的动态授权模型,可以精确到每个按钮的访问控制。
我讲了二十五分钟。
没有一句废话。
每句话都对应一个具体问题,每个方案都给出了实现细节。
讲完后,会议室里很安静。
我看向甲方那边。
几个领导在低头记笔记。
苏晓晓也在记,写得很认真。
李处长抬起头:“陈工,我问个问题。你们这个方案,实施周期要多久?”
“第一期核心功能,三个月。完整上线,六个月。”
“智创的方案说只要四个月。”
“他们说的可能是标准产品部署时间。”我说,“但市局的需求有很多定制化部分,需要重新开发。四个月不够。”
赵晓军脸色变了变。
“那成本呢?”李处长继续问。
“我们的报价是基于工作量评估的,明细在商务文件里。”我说,“可能比某些公司高,但每一分钱都有依据。”
“好。”
李处长转向王副局长:“王局,您看?”
王副局长沉吟片刻:“技术方案,两家各有优劣。但就刚才的陈述来看,”他看向我,“陈工这边更贴近实际需求。”
我心跳加速。
“不过,”他话锋一转,“项目最终选择,还要综合考虑商务条件。下面进入商务谈判环节吧。”
商务谈判。
说白了,就是压价。
智创的人先出去了,我们在小会议室等着。
老周很兴奋:“陈默,你讲得太好了!那几个领导明显更认可我们!”
“但商务分占。”我说。
“我知道。”老周脸色又沉下来,“赵晓军把价压得那么低,我们跟不起。”
“那就不要跟。”我说。
“不跟?不跟项目就丢了!”
“丢了就丢了。”我看着老周,“做亏本生意,不如不做。”
老周瞪着我:“你说得轻松!公司这季度业绩……”
门开了。
张科长走进来,脸色不太好看。
“老周,陈工。”他坐下,“刚才领导们商量了一下。你们的技术方案确实好,但报价太高了。智创比你们低,这个差距太大了。”
“张科,我们的报价是合理的。”老周急忙说,“智创那个价,肯定是偷工减料……”
“偷工减料也好,赔本赚吆喝也好,那是他们的事。”张科长打断他,“局里的预算有限,领导们也要考虑性价比。”
“那……”
“这样吧。”张科长看着我,“陈工,你们把报价降20%。降到跟智创差不多,这个项目就给你们。”
降。
意味着这个项目我们一分钱不赚,还要倒贴人力成本。
老周看向我。
我也看向老周。
“张科,”我说,“降我们做不到。技术方案的质量和成本是挂钩的,降价必然意味着减配。”
“那你们能降多少?”
“最多5%。”
张科长皱起眉头:?那跟没降有什么区别?”
“区别就是,”我说,“我们能保证方案完全落地,不偷工减料。”
张科长站起来:“那你们再考虑考虑。我先出去,十分钟后给我答复。”
他走了。
门关上。
老周一拳砸在桌上:“妈的!赵晓军这个王八蛋,把市场搅得稀烂!”
我沉默。
窗外传来鸟叫声。
很清脆。
“陈默,”老周看着我,“你说怎么办?”
“不降。”
“不降项目就丢了!”
“丢了就丢了。”我重复了一遍,“但我们至少让甲方看到了,什么样的技术方案才是真正靠谱的。今天丢一个项目,明天可能赢得口碑。”
“口碑能当饭吃吗?”
“不能。”我说,“但昧着良心接项目,以后可能连饭都没得吃。”
老周盯着我,看了很久。
最后叹了口气:“你说得对。”
十分钟后,张科长回来了。
“考虑得怎么样?”
“张科,”我说,“我们只能降
张科长脸色一沉:“那就是没得谈了?”
“不是没得谈。”我看着他的眼睛,“是我们要对自己的方案负责。如果我们降价,必然要砍功能、减配置。到时候系统上线出了问题,耽误的是干警办案,损失的是老百姓的利益。”
我顿了顿:“张科,您是公安系统的老人了。您应该比我清楚,一套不靠谱的系统,会给一线工作带来多大麻烦。”
张科长没说话。
但他的眼神动了一下。
“我去跟领导汇报一下。”他说。
他出去了。
这次等了二十分钟。
二十分钟里,我和老周都没说话。
走廊里传来脚步声,说话声,还有赵晓军的大笑声。
他好像很开心。
进来的是苏晓晓。
她拿着一份文件,脸色很严肃。
“陈工,周总。”她坐下,“领导们让我来跟你们沟通一下。”
“苏警官请说。”
“技术评审的结果出来了。”她把文件推过来,“你们公司的技术方案,得分比智创高15分。”
我的心跳漏了一拍。
“但是,”她继续说,“商务评审,智创比你们高25分。综合下来,智创总分更高。”
果然。
老周的肩膀垮了下来。
“所以……”他声音干涩。
“所以领导们的初步意见是,”苏晓晓看着我,“选择智创科技作为中标单位。”
虽然早有预料。
但亲耳听到,还是像挨了一记闷棍。
“不过,”苏晓晓话锋一转,“我以刑警支队用户代表的身份,提出了异议。”
我和老周同时抬头。
“我向领导们汇报了上周那个诈骗案的情况。”苏晓晓语气平静,“当时嫌疑人手机加密,我们技术队束手无策。是陈工连夜帮忙,找到了漏洞,拿到了关键证据。”
她顿了顿:“我说,一套网络安全系统,最重要的不是价格多低,而是关键时刻能不能顶得上。如果我们选了便宜的方案,但遇到紧急情况时系统崩溃、数据泄露,那损失不是省下的那点钱能弥补的。”
她也在看我。
眼神很坚定。
“王副局长听完后,决定暂缓宣布结果。”苏晓晓说,“他要求两家公司,针对同一个实战场景,做一次压力测试。”
“压力测试?”
“对。”她拿出一张纸,“这是我们正在办的一个案子。嫌疑人团伙使用加密通讯软件联络,服务器架设在境外。我们需要在五分钟内,突破加密,拿到通讯记录。”
她把纸推过来。
上面是一个IP地址,一个端口号,还有几行加密数据样本。
“测试时间是今天下午两点,在局里的实验室进行。”苏晓晓站起来,“谁能在规定时间内完成任务,谁就能拿到项目。”
她走到门口,又回头。
“陈工,”她说,“我相信你。”
然后走了。
会议室里只剩下我和老周。
老周拿起那张纸,看了看,又放下。
“有把握吗?”他问。
“有。”
“好。”他拍拍我的肩,“那就干他娘的!”
中午我们在市局食堂吃饭。
赵晓军端着餐盘走过来,坐在我们对面。
“默默,听说还要加试?”他笑着问,“何必呢,结果不是已经很明显了吗?”
“不明显。”我说。
“你呀,就是倔。”他摇摇头,“不过也好,让你输得心服口服。下午的测试,我们公司可是有专门的密码学专家。”
“哦。”
“对了,”他突然想起什么,“昨晚家庭聚会,你提前走了。丽丽还挺失望的,说你人不错。”
我没接话。
“要我说,你就别挑了。”他一边吃饭一边说,“丽丽虽然离过婚,但工作稳定,人也贤惠。你一个程序员,还想找什么样的?像苏警官那样的?”他笑了,“别做梦了。人家是警花,追的人排长队,能看上你?”
我放下筷子。
“我吃完了。”
“哎,别走啊。”他叫住我,“姐夫跟你说句真心话。这个社会,讲的是门当户对。你一个没房没车的程序员,就应该找个条件相当的。别好高骛远。”
我看着他的眼睛。
看了三秒。
然后说:“谢谢姐夫提醒。”
转身走了。
老周跟上来:“他说话真难听。”
“习惯了。”
“陈默,”老周突然说,“下午的测试,你一定要赢。”
“不是为了公司。”老周说,“是为了你自己。”
我愣了愣。
“我看得出来,那个苏警官很看重你。”老周拍拍我的肩,“不是为了别的,是因为你的技术,你的人品。你得让她知道,她没看错人。”
但心里那团火,烧得更旺了。
下午一点五十,实验室。
房间不大,摆了两排电脑。甲方的人坐在观察区,王副局长、李处长、张科长、苏晓晓都在。
我们和智创各占一边。
赵晓军带来的密码学专家是个四十多岁的中年男人,秃顶,戴厚眼镜,一副很厉害的样子。
他看了我一眼,眼神轻蔑。
“测试规则很简单。”李处长开口,“这里有两台服务器,模拟嫌疑人的加密通讯系统。你们各自破解,拿到里面的通讯记录。限时五分钟。开始!”
倒计时开始。
我立刻进入状态。
先扫端口,分析服务,抓取数据包。
对方用的是自研的加密协议,但底层还是常见的非对称加密。我快速写了个脚本,尝试几种常见漏洞。
三分钟过去了。
智创那边,那个专家还在敲代码,额头上冒汗。
赵晓军急得站起来,又坐下。
我看了一眼苏晓晓。
她正看着我,眼神专注。
我深吸一口气,换了个思路。
既然正面破解困难,那就找旁路。
我分析服务器的响应时间,发现某个特定请求的延迟异常。这可能是因为……密钥交换时的校验逻辑有缺陷。
我尝试构造一个特殊的请求包。
发送。
服务器返回了一个错误信息。
但错误信息里,竟然包含了一部分密钥的哈希值!
机会!
我立刻写脚本,利用这个哈希值反向推导。
倒计时:一分钟。
五十秒。
三十秒。
旁边的专家突然喊:“我破了!”
赵晓军激动地站起来:“好!”
但李处长看了眼屏幕:“只拿到了一部分数据,而且都是乱码。”
“那是……那是加密没解彻底……”专家擦汗。
“时间到!”李处长宣布。
智创那边,只破解了30%的数据,而且无法解析。
所有人的目光转向我。
我倒计时最后十秒提交了解密结果。
“陈工这边?”李处长问。
我按下回车。
屏幕上,完整的通讯记录弹出来。
时间,地点,联系人,内容。
清清楚楚。
实验室里一片寂静。
然后,王副局长第一个鼓掌。
“好!”他说,“这才是真正有用的技术!”
赵晓军的脸,白得像纸。
他那个专家瘫在椅子上,喃喃自语:“怎么可能……怎么可能这么快……”
苏晓晓走过来,看着屏幕上的数据,又看看我。
她笑了。
那个梨涡又出现了。
“陈工,”她说,“厉害。”
两个字。
但我感觉,比什么都值。
李处长宣布结果:“经过综合评估,技术分和实战测试均占优,虽然商务报价较高,但考虑到系统稳定性和实战价值,经局领导研究决定——”
他顿了顿。
“选择陈默所在公司,作为本次公安系统网络安全项目的合作单位!”
掌声响起。
老周激动地抓住我的胳膊:“赢了!我们赢了!”
我站在原地,看着对面的赵晓军。
他也看着我。
眼神复杂——震惊,不甘,还有一丝……难以置信。
散会后,他走过来。
“默默,”他勉强笑了笑,“恭喜啊。”
“谢谢姐夫。”
“没想到你技术这么好。”他叹了口气,“以前小看你了。”
“那个……”他犹豫了一下,“分包的事,还作数吗?你们项目这么大,总需要人手……”
“不需要。”我说。
他脸色变了变,但没发作。
“行,那……我先走了。”
他转身离开。
背影不再挺拔。
苏晓晓走过来:“陈工,后续合同细节,我们下周对接?”
“另外,”她顿了顿,“今晚支队庆功,上次那个诈骗案正式告破。你有空来吗?”
我愣住了。
“我?”
“嗯。”她看着我,“你帮了大忙,队里都想谢谢你。”
我想了想。
“那晚上七点,支队门口见。”
她走了。
老周凑过来,挤眉弄眼:“可以啊陈默,女警花亲自邀请!”
“只是工作。”
“工作?”老周笑了,“行,你说工作就工作。走吧,回公司,今晚我请客,全部门庆祝!”
回公司的路上,我收到我妈的微信。
“默默,你姨说丽丽对你挺满意的,问你什么时候再见一面?”
我回:“妈,项目拿下了。”
“什么项目?”
“公安那个大项目。”
那边沉默了足足一分钟。
然后发来一条语音,声音都在抖:“真的?拿下了?多少钱的项目?”
“一千两百万。”
“一千两百万!”我妈尖叫,“我儿子真厉害!我这就告诉你姨去,让她别瞎介绍了,我儿子这么优秀,还怕找不到对象?”
我笑了笑。
关上手机。
看向窗外。
阳光正好。