Шифрование формата даты DateTime
Я работаю над маленькой загадкой. У меня есть временные метки, которые, как я знаю, являются временными метками, но не могут понять, как они закодированы.
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
Ответы
Ответ 1
казалось, что временная метка использует Pi в качестве основы для вычисления времени!?
3ea7ff89 - 12 октября Час 14 Минут 28
3ea7cf09 - 12 октября Час 15 минут 34
разница: 12416 ~ 66 минут
если мы разделим его на 60 на 60 секунд в минуту, а после этого мы разделим его на 66 для разницы минут, которую мы получаем
3.13535353535, что действительно близко к Pi.
если мы используем pi для обратного преобразования:
Pi * 66 * 60 = 12440, который находится в диапазоне ошибок не доставленных секунд в ваших временных отметках.
Ответ 2
Мне интересно, какие HEX, преобразованные в Decimal, имеют некоторое отношение к 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
Ответ 3
Я пытался играть с бинарной формой ваших входов и использовать побитовый оператор XOR (бедный человек) между значение и соответствующую временную метку UNIX.
Это то, что у меня есть до сих пор:
(1381507800 ^ 0x3ea02d09) = 0110110011111 00000001111 11 010 001
(1381584480 ^ 0x3ea7ff89) = 0110110011111 11010110001 11 101 001
(1381588440 ^ 0x3ea7cf09) = 0110110011111 11010010010 11 010 001
- 16 бит + 2 биты остаются стабильными.
- Первые 13 бит плюс последние 3 бита (которые делают 16 бит, если они объединены) заставляют меня думать о каком-то сдвиге влево.
Обратите внимание, что мой часовой пояс - это UTC + 1, и поэтому мои отметки времени UNIX могут быть неточными. Было бы здорово, если бы вы могли получить соответствующие метки времени в вашей системе, чтобы продвинуть этот вывод дальше.