在Python中为特定键设置过期日期

0 投票
1 回答
21 浏览
提问于 2025-04-12 01:54

***问题是,当我在控制台输入“4255”这个密钥时,它总是会刷新,而且永远不会过期。我想知道怎么才能为多个密钥设置过期时间,而不仅仅是一个。***

我希望这个密钥在1分钟后过期,并且把这个信息存储在某个地方,这样每次我再次使用这个密钥时,它就不会刷新。***

import random
from datetime import datetime, timedelta

def generate_key():
    key = str("4255")
    expiration_time = datetime.now() + timedelta(days=0, minutes=1) #Key expires in 1 day and 30 minutes
    return key, expiration_time

def is_expired(expiration_time):
    return datetime.now() > expiration_time

correct_key, expiration_time = generate_key()

print("# Generated key", correct_key)

user_input = input("Enter your license Key:")

if expiration_time == timedelta:
    print("your425 Key expired", (expiration_time))

if user_input == correct_key:
    print("Successfully Loaded")

if user_input == correct_key:
    print("Expiration:",(expiration_time))

else:
    print("Key Expired")

input("Press any Key to close")

这个密钥应该在第一次使用时开始计算过期时间,并且在某个地方存储这个信息。

1 个回答

0

用字典来存储键和过期时间。这样做可以让你的代码正常运行。

from datetime import datetime, timedelta
key_expiration_map = {}


def generate_key():
    key = str("4255")
    expiration_time = datetime.now() + timedelta(days=0, minutes=1) #Key expires in 1 day and 30 minutes
    return key, expiration_time

def is_expired(expiration_time):
    return datetime.now() > expiration_time


def validate_key(user_input):
    if user_input in key_expiration_map:
        expiration_time = key_expiration_map[user_input]
        if is_expired(expiration_time):
            print("Key Expired")
            return False
        else:
            print("Successfully Loaded")
            print("Expiration:", expiration_time)
            return True
    else:
        print("Invalid Key")
        return False

correct_key, expiration_time = generate_key()
key_expiration_map[correct_key] = expiration_time

print("# Generated key:", correct_key)

while True:
    user_input = input("Enter your license Key:")
    if validate_key(user_input):
        break

input("Press any Key to close")

撰写回答