golang RFC3339Nano时间戳可以可靠地转换为Unix时间戳吗?

问题描述 投票:0回答:1

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

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

问题:如果以后需要重新验证散列,是否存在RFC3339Nano无法完全反转到原始Unix时间戳的风险?

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

RFC3339Nano时间戳和Unix时间戳是从同一时间生成的。时间结构。

我倾向于认为它会起作用,因为leap-seconds spawn an extra 61st second at the day of their occurrence,我希望它会映射回与前一秒相同的Unix时间戳。反过来显然会失败。

go time unix-timestamp rfc3339 leap-second
1个回答
0
投票

我觉得你没有理由遇到这种麻烦,你为什么不直接用Unix()直接存储到数据库并用它恢复?

© www.soinside.com 2019 - 2024. All rights reserved.