我正在创建一个许可证,允许用户在特定时间段内使用 Python 程序。该程序使用 datetime.today() 检查当前日期,然后将其与许可证中加密的到期日期进行比较。如果当前日期超过到期日期,则运行失败。
我担心的是,如果有人操纵他的电脑时间使程序认为许可证仍然有效怎么办? Python日期时间库使用PC的时间吗?如果不是,其来源是什么?
提前致谢!
最佳答案
datetime.today()
使用系统日期/时间。所以是的,用户可以更改系统时间来欺骗程序。
您可以使用像 ntplib 这样的库从远程服务器获取时间,但这当然需要网络连接。因此,您可能需要决定如何处理程序无法访问网络的情况:也许您每周左右才对服务器执行 ping 操作,并要求应用程序每周至少连接一次互联网。
更好的解决方案是为您的用户提供进入应用程序所需的产品 key 。应用程序将在启动时(或以指定的时间间隔)对照您自己的服务器检查此产品 key ,并且仅在 key 有效时才继续。这样,您就可以随时控制用户访问,因为您可以随时轻松更改产品 key 权限。
关于python - Python 的日期时间的来源是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62203810/