DateTime十六进制格式解码

时间:2013-10-11 07:22:55

标签: date timestamp hex

我正在研究一个小谜题。我有一些时间戳,我知道它们是时间戳,但无法弄清楚它们是如何编码的。

3ebf5b89 means 08-October-2013 hour 8 AM but minute I can't provide neither second 
3ebd5f09 means 09-October-2013 hour 8 AM Unknown minute/second.
3ea15d09 means 11-October-2013 hour 8 AM Unknown minute/second but before half past hour.

关于编码的任何想法?

奇怪的是,日期似乎随着日期过去而变得更低。

如果我转换为十进制并从小日期减去大日期,我会得到一个以秒为单位转换的值,大约是两个日期之间的日期,每天误差为5小时。

LE

我设法获得更准确的时间戳:

3ea02d09 - Oct 11th, 2013 at 17:10 (hour:minute)
3ea7ff89 - Oct 12th, 2013 at 14:28
3ea7cf09 - Oct 12th, 2013 at 15:34

3 个答案:

答案 0 :(得分:1)

似乎时间戳使用Pi作为计算时间的基础!?

3ea7ff89 - 10月12日小时14分28 3ea7cf09 - 10月12日小时15分34

差异:12416~66分钟 如果我们将它除以60分钟每分钟60秒,之后我们将它除以66得到的分钟差异 3.13535353535真的很接近Pi。 如果我们使用pi来反转公式: Pi * 66 * 60 = 12440,它位于时间戳中未交付秒数的误差范围内。

答案 1 :(得分:1)

我想知道那些转换为十进制的十六进制与Unix Epoch时间有一些关系:

这些十六进制数字正在转换为某些有效日期,但与您提到的不同:

Hex 3ebf5b89 = Decimal 1052728201 = Mon, 12 May 2003 08:30:01 GMT

Hex 3ebd5f09 = Decimal 1052598025 = Sat, 10 May 2003 20:20:25 GMT

Hex 3ea15d09 = Decimal 1050762505 = Sat, 19 Apr 2003 14:28:25 GMT


Hex 3ea02d09 = Decimal 1050684681 = Fri, 18 Apr 2003 16:51:21 GMT

Hex 3ea7ff89 = Decimal 1051197321 = Thu, 24 Apr 2003 15:15:21 GMT

Hex 3ea7cf09 = Decimal 1051184905 = Thu, 24 Apr 2003 11:48:25 GMT

答案 2 :(得分:1)

我尝试使用输入的二进制形式,并在值和相应的UNIX时间戳之间使用按位XOR (the poor man's cipher)运算符。

这是我到目前为止所得到的:

(1381507800 ^ 0x3ea02d09) = 0110110011111 00000001111 11 010 001

(1381584480 ^ 0x3ea7ff89) = 0110110011111 11010110001 11 101 001

(1381588440 ^ 0x3ea7cf09) = 0110110011111 11010010010 11 010 001
  • 16bits + 2bits保持稳定。
  • 前13位加上最后3位(合并时为16位)让我想到了某种旋转左移。

请注意我的时区是UTC + 1,因此我的UNIX时间戳可能不准确。如果您可以在系统上获得相应的时间戳来进一步推动这一领先优势,那就太棒了。