我想知道如何获得不易上当的时间戳。
(最初我是用 time.h 中的函数制作的,但它们可以通过挂钩来操作。)
有没有关于获取确切时间戳的解决方案?
获得准确的时间戳本身就是一门科学。您可以获得计算机的确切时间戳,或者您可以调用 Web 服务,它会向您发送原子钟的时间戳(您必须计算和调整 IP 数据包的运行时间),或者您可以执行硬件解决方案附加一个 GPS 模块,这是相当准确的。
如果您的 C 程序在不受信任的环境中运行,则无法确定有人提供的时钟不是欺诈性的。为了确保时钟是“合理的”,您必须联系您能够验证的外部来源(例如,通过 SSL/TLS)并从那里读取时间,看看它是否与系统调用报告的有很大不同。正如@caf 指出的那样,即使这样也提供了零保证。