def generate_key(self): # Generate a random activation key key = ''.join(secrets.choice('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()') for _ in range(32)) return key
user_id = "user123" expiration_date = datetime.now() + timedelta(days=expiration_days)
is_valid = activation_key.validate_key(generated_key, user_id) is_expired = activation_key.is_expired(generated_key, expiration_date)
def is_expired(self, key, expiration_date): # Check if the activation key has expired return expiration_date < datetime.now()
activation_key = ActivationKey(secret_key, expiration_days) generated_key = activation_key.generate_key() print(f"Generated Activation Key: {generated_key}")
try { const response = await fetch('/validate-activation-key', { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ activationKey, username, password }), });
def validate_key(self, key, user_id): # Validate the activation key expected_mac = hmac.new(self.secret_key, f"{user_id}{key}".encode('utf-8'), hashlib.sha256).hexdigest() # Compare the expected MAC with the provided MAC return hmac.compare_digest(expected_mac, key)