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

问题描述 投票:0回答:1

***问题是,当我在控制台中输入密钥“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")

密钥应在第一次使用时开始到期日期,并在某处存储信息。

python arrays store
1个回答
0
投票

使用dic存储密钥和过期时间。这应该可以运行你的代码。

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")
© www.soinside.com 2019 - 2024. All rights reserved.