即使我在主机上更改了时钟,也可以获得真实的DateTime(c#)

时间:2015-04-24 11:12:23

标签: c# windows security

我想为应用程序生成序列号(仅在一段时间内使用),此序列号基于时间,因此如果更改我的时钟时间,它将是不必要的代码计算机,所以我问你是否有可能获得真正的DateTime,即使我用我的计算机改变了C#的时间?

(我假设用户没有互联网连接)

2 个答案:

答案 0 :(得分:8)

  

我问你是否有可能获得真正的DateTime,即使我使用C#更改了我的计算机上的时间?

     

(我假设用户没有互联网连接)

没有。系统时钟本地时间信息源。如果你无法找到可靠的外部资源(由于缺乏互联网连接),那么你就无法依赖它。

我建议您使用互联网连接检查时间是否存在,否则会重新回到系统时钟,可能会检测到时间已经显着逆转(如果在某一时刻你是"请参阅"时间在4月20日,然后在另一个你看到"时间为4月15日,你可以假设一些奇怪的事情发生了)并接受一个充满动力的用户将绕过支票。

答案 1 :(得分:2)

人们做什么:记录你的程序在注册表中某处执行的时间(本地时钟)(或另一个难以猜测的地方)。

如果您的程序再次运行并在之前找到本地时间,则此记录的时间戳会拒绝启动。

这是一种防止用户操作时钟以便对您的许可进行反应的方法。

你必须考虑夏令时的chages,所以你应该允许一小时的“时间跳跃”