如果我使用 DateTime.Now 作为软件许可身份验证的一部分来强制软件可以使用的天数,是否可以通过简单地更改系统时钟来规避?
如果是这样,有没有更好的方法来获得真正的 UTC 时间?
如果我使用 DateTime.Now 作为软件许可身份验证的一部分来强制软件可以使用的天数,是否可以通过简单地更改系统时钟来规避?
DateTime.Now 使用系统时钟,所以是的,它可以被规避。
如果是这样,有没有更好的方法来获得准确的系统时间?
是的,您可以通过 www 查询时间服务器。但是您知道,即使这样也可以避免,因为用户可以修改他的主机文件并用他自己的代理替换您正在使用的地址,并在他喜欢的任何时间返回。因此,这完全取决于您希望在保护软件方面走多远。如果您真的关心软件的知识产权,最好购买商业许可软件。
每次我使用这种方法进行测试时,它都会影响到这一点,所以答案是肯定的,它确实会影响它
是的,当然,DateTime.Now 从系统时钟获取它的值。
更好的方法是使用 Internet 上的 NTP 服务器。
在这篇关于 codeproject 的文章中,您可以找到允许客户端连接到 NTP 服务器的代码