Можно ли надежно преобразовать временную метку golang RFC3339Nano в временную метку Unix и из нее? - PullRequest
0 голосов
/ 20 марта 2019

В моем приложении golang я использую метку времени второго разрешения Unix (сгенерированную с помощью time.Now().UTC().Unix()) как часть соли в хеш-функции, используемой для аутентификации запроса.

Есть желание сохранить эту временную метку в хранилище данных, где условным обозначением являются строки меток времени с наносекундным разрешением RFC3339, сгенерированные функцией golang RFC3339Nano , вместе с хешем для аутентификации.

Вопрос: существует ли риск того, что RFC3339Nano не может быть обращен точно к исходной метке времени Unix, если хэш необходимо будет повторно аутентифицировать позже?

Я знаю, что есть некоторые проблемы с високосными секундами , которые применяются к меткам времени Unix; Возможно ли когда-нибудь, что циклическое переключение через RFC3339Nano приведет к другой метке времени, что приведет к ошибочной подписи?

Отметка времени RFC3339Nano и отметка времени Unix генерируются из одного и того же времени. Структура времени.

Я склонен думать, что это сработает, поскольку високосные секунды порождают лишнюю 61-ую секунду в день их появления , который, как я ожидаю, отобразится на ту же метку времени Unix, что и предыдущая секунда. Однако обратное явно потерпит неудачу.

1 Ответ

0 голосов
/ 20 марта 2019

Я думаю, что вы испытываете подобные проблемы без причины, почему бы вам просто не использовать Unix () для непосредственного сохранения в базе данных и восстановления с этим?

...