在Python中为特定键设置过期日期
***问题是,当我在控制台输入“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")