que formato tiene que tener la licencia, es decir como se debe ver?
la licencia puedes crearla desde lo más simple
usuario:Pepito,Perez;maquinas:5
o puedes codificarlas para aumentar su seguridad
ej:
teniendo como cadena inicial esta anterior y usando como clave "licencia", primero le hacemos a esa cadena un md5 para hacerla más "robusta" y verificar que los datos no se hayan cambiado quedando
usuario:Pepito,Perez;maquinas:5;26a67ba5b849dc280e3666041c09dc29
luego cifrando en AES-128 para que los usuarios no la puedan tocar (y el resultado en base 64 para que sea copy/pasteable)
WZNvtwNEXXICV6FF4JZS1H+6bsJjfSldrmhdixpEIGI2DWbVL3KBBew9AA9OWXpcbdFiUtvu1XJCMZ8KPxiIRg==
allí ya tendrías una cadena bastante solida de licencia para usar
lo más complicado es el aes...
pero para ahorrarte una buena cantidad de problema si lo usas, puedes usar esta funcion para asegurar los largos correctos
def frase_LargoCorrecto(frase):
largo = 16 #todo en aes debe ser multiplo de 16
relleno = '\x00' #relleno de algo inconfundible
return frase + (largo - len(frase) % largo) * relleno
ya de ahí con las librerias
from Crypto.Cipher import AES
import base64
es bastante simple