Я бы использовал соленый хеш
Вы берете что-то конкретное для них, например, идентификатор клиента и другую идентифицирующую информацию. Вы помещаете его в строку, добавляете свой секретный ключ в виде соли и хешируете значение (MD5? Sha1? Выберите) ...
Хеш-значение является их ключом.
Если у них есть лицензия для конкретного сервера, рассмотрите возможность добавления mac-адреса в строку предварительного хэша, чтобы они не могли скопировать лицензию на несколько серверов.
Поскольку срок действия лицензии включен, рассмотрите возможность добавления даты, созданной в строку предварительного хэша.
Еще одна вещь, которую стоит рассмотреть, - почему срок действия ключа истекает каждую неделю? Я имею в виду, если это внутри вашей организации, зачем вам вообще нужны лицензии? Разве вы не в одной команде? (И под этим я подразумеваю, что все работают ради одной общей цели - улучшения вашего предприятия.)