与我国主要以字母加上数字为规则的车牌设计不同,美国的车牌不但是色彩缤纷,而且可以有不同的设计,要用纯字母的车牌也可以。而一位来自洛杉矶的工程师Droogie,就很工程师性格地注册了一个“NULL”的车牌号码,这在工程师来说应该是一个很酷的车牌,不过,这个车牌却带给他相当哭笑不得的后果。
“NULL”这个字符串在程序设计中主要代表一个“空值”,意思就是没有这个内容。比如说当你在撰写程序的时候,想要在一篇文章中寻找一个叫做“十轮网”的关键字,但是这篇文章中从头到尾都没有出现这三个字,那么这进程序就会传回一个“NULL”,表示没有找到这个关键字,答案为“空”。
Droogie身为一个工程师,将自己的车牌注册这个号码,第一是觉得身为一个工程师开一台“NULL”的车子很酷,感觉好像自己在实体世界隐形起来。其次,他也想说不定会发现一个系统漏洞:就算他的车子超速违规了,系统也会因为车牌为“NULL”,所以他也收不到罚单。
结果,还真的给他发现了系统漏洞.. ….只是结果跟他想的不大一样。甚至可以说,结果刚好相反。
Droogie是在出席拉斯维加斯的DEF CON世界黑客年会时,向大家报告这件事的。他表示,他申请完车牌之后,几乎每天都会收到一张以上的罚单。到他出席黑客年会的这一天为止,累计已经收到超过1.2049万美元的罚单。
而且,每一张罚单上所罚的车牌号码,正是“NULL”。
原来,根据美国的交通系统,后台将所有识别不清车牌号码的罚单,都会将车牌指派为“NULL”,意思就是空值。原理与前面所说找不到关键字的原理是一样的,这是设计师的普遍思维。不过,过去“NULL”这个空值意思就是空值,但是现在“NULL”这几个字符串已经被Droogie注册了,因此,这些无主的罚单现在通通找到了主人,全部寄来他的信箱。
Droogie表示,他向设计罚单的系统公司Citation Processing Center反映了这个问题,对方要求他把罚单寄回。但他怕发送罚单后他连能证明不是他违规的证据都没有。于是,他转而向美国的监理单位求助,监理单位答应帮他去撤销这些罚单。
问题是,撤销他收到的罚单并没有解决他的问题,因为新的罚单还是骆绎不绝的寄来。他只能持续在去找监理单位帮他销单。
更不幸的是,他想要更改持车牌号码,但是因为积欠罚款太多,无法去更换车牌数据。
Droogie的故事给我们一个启事:有些时候,写程序用到的名词,还是让他们保持在程序里面就好。别跑到实体世界出来害人(或是害自己)。
领取专属 10元无门槛券
私享最新 技术干货