在我的 golang 应用程序中,我使用 Unix 秒分辨率时间戳(使用 生成time.Now().UTC().Unix()
)作为用于请求身份验证的哈希函数中盐的一部分。
希望将此时间戳存储在数据存储中,其中约定是由 golang RFC3339Nano 函数生成的 RFC3339 纳秒分辨率时间戳字符串,以及用于身份验证的哈希。
问题:如果哈希需要稍后重新验证,是否存在无法将 RFC3339Nano 完全反转为原始 Unix 时间戳的风险?
我知道闰秒存在一些适用于 Unix 时间戳的问题。是否有可能通过 RFC3339Nano 往返会导致不同的时间戳,从而错误地使签名无效?
RFC3339Nano 时间戳和 Unix 时间戳是从同一个 time.Time 结构中生成的。
我倾向于认为它会起作用,因为闰秒在它们发生之日产生了额外的 61 秒,我希望它会映射回与前一秒相同的 Unix 时间戳。反过来显然会失败。