0

在我的 golang 应用程序中,我使用 Unix 秒分辨率时间戳(使用 生成time.Now().UTC().Unix())作为用于请求身份验证的哈希函数中盐的一部分。

希望将此时间戳存储在数据存储中,其中约定是由 golang RFC3339Nano 函数生成的 RFC3339 纳秒分辨率时间戳字符串,以及用于身份验证的哈希。

问题:如果哈希需要稍后重新验证,是否存在无法将 RFC3339Nano 完全反转为原始 Unix 时间戳的风险?

我知道闰秒存在一些适用于 Unix 时间戳的问题。是否有可能通过 RFC3339Nano 往返会导致不同的时间戳,从而错误地使签名无效?

RFC3339Nano 时间戳和 Unix 时间戳是从同一个 time.Time 结构中生成的。

我倾向于认为它会起作用,因为闰秒在它们发生之日产生了额外的 61 秒,我希望它会映射回与前一秒相同的 Unix 时间戳。反过来显然会失败。

4

1 回答 1

0

我认为你无缘无故地遭受这种麻烦,你为什么不直接使用 Unix() 直接存储到数据库并用它来恢复呢?

于 2019-03-20T04:17:11.760 回答