是什么导致2010年的错误?

Rya*_*ner 18 y2k

有很多关于系统无法理解2010年的报告,但我不知道为什么.据我所知,目前我所关注的系统工作得很好,但我想知道实际问题是什么,以便更好地搜索.

有人可以解释一下吗?

编辑:http://www.rte.ie/business/2010/0105/bug.html - 有关它影响德国信用卡的信息

Ric*_*ett 13

一个可能的解释是在下面的文章中

http://www.theregister.co.uk/2010/01/05/symantec_y2k10_bug/

让我想起你最近关于廉价和肮脏的Y2K错误修复的文章,其中一些不道德的程序员输入一个简单的if <10 = 20xx,否则日期是19xx


Ras*_*ber 13

银行和电信中使用的几种协议- 包括SMS协议 - 将年份编码为单字节BCD.

从2000年到2009年,由于编码方式相同,因此很容易将错误解释为年份作为标准二进制数:

Encoding  Binary-interpreted  BCD-interpreted
0x01      2001                2001
0x02      2002                2002
...
0x09      2009                2009
0x10      2016                2010
...
Run Code Online (Sandbox Code Playgroud)

这很可能是Windows Mobile漏洞的原因.


Mar*_*ers 11

SpamAssassin规定将日期标记为垃圾邮件:

/20[1-9][0-9]/
Run Code Online (Sandbox Code Playgroud)

修复来得太晚了,但很简单:

/20[2-9][0-9]/
Run Code Online (Sandbox Code Playgroud)

十年后再次见到你.

  • 因为每个人都知道,如果你不能在正则表达式中表达它,那就不值得做......;) (14认同)
  • 为什么不只是对系统日期进行抽样,并将"未来太远"作为基础?WTF? (3认同)
  • 首先我虽然你一定是在开玩笑.但后来我检查了https://issues.apache.org/SpamAssassin/show_bug.cgi?id=6269.对我来说,将两个4位整数相互比较似乎并不太难.为什么他们使用正则表达式呢? (2认同)