首页 > 解决方案 > Python 日期时间的来源是什么?

问题描述

我正在创建一个许可证,允许用户在特定时间段内使用 Python 程序。该程序使用 datetime.today() 检查当前日期,然后将其与许可证中加密的到期日期进行比较。如果当前日期已超过到期日期,则无法运行。

我担心的是,如果有人操纵他的 PC 时间让程序认为许可证仍然有效怎么办?Python datetime 库是否使用 PC 的时间?如果不是,它的来源是什么?

提前致谢!

标签: pythondatetime

解决方案


datetime.today()使用系统日期/时间。所以是的,用户可以更改系统时间来欺骗程序。

您可以使用ntplib之类的库从远程服务器获取时间,但这当然需要网络连接。因此,当您的程序无法访问网络时,您可能想决定如何处理这种情况:也许您只每周左右 ping 服务器一次,并要求应用程序每周至少连接一次互联网。

更好的解决方案是为您的用户提供他们需要输入应用程序的产品密钥。应用程序将在启动时(或在指定的时间间隔)根据您自己的服务器检查此产品密钥,并且仅在密钥有效时继续。这样,您可以随时控制用户访问,因为您可以随时轻松更改产品密钥权限。


推荐阅读