python - Python 日期时间的来源是什么?
问题描述
我正在创建一个许可证,允许用户在特定时间段内使用 Python 程序。该程序使用 datetime.today() 检查当前日期,然后将其与许可证中加密的到期日期进行比较。如果当前日期已超过到期日期,则无法运行。
我担心的是,如果有人操纵他的 PC 时间让程序认为许可证仍然有效怎么办?Python datetime 库是否使用 PC 的时间?如果不是,它的来源是什么?
提前致谢!
解决方案
datetime.today()
使用系统日期/时间。所以是的,用户可以更改系统时间来欺骗程序。
您可以使用ntplib之类的库从远程服务器获取时间,但这当然需要网络连接。因此,当您的程序无法访问网络时,您可能想决定如何处理这种情况:也许您只每周左右 ping 服务器一次,并要求应用程序每周至少连接一次互联网。
更好的解决方案是为您的用户提供他们需要输入应用程序的产品密钥。应用程序将在启动时(或在指定的时间间隔)根据您自己的服务器检查此产品密钥,并且仅在密钥有效时继续。这样,您可以随时控制用户访问,因为您可以随时轻松更改产品密钥权限。
推荐阅读
- spring-boot - Redisson 的单元测试失败
- swift - 为什么 Koin 在我的 KMM 应用程序中抛出“未捕获的 Kotlin 异常:kotlin.native.IncorrectDereferenceException”?
- reactjs - 如何使用反应测试库模拟将道具传递给子组件的父组件
- jquery - 使用jQuery提取粘贴在textarea中的自定义html元素属性和内容
- r - R : 根据条件用值填充 NaN 或更新一列的值
- sql - 如何将 BigQuery 嵌套记录取消嵌套到多个列中
- rust - 基于向量元素创建 HashMap 的最节省内存和最快的方法
- ios - Segue 后视图控制器上的更新消失了
- .net - Blazor 错误:无法建立 SSL 连接,请参阅内部异常
- python - 我可以为从 a 点到 b 点的字符串着色吗?