KeyGen - Gestionnaire de clés d’activation
Par Delphi Source - March 26, 2026 · Vues: 43 · Catégories: Open Source · Tags: #Indy #API #KeyGen

KeyGen - Gestionnaire de clés d’activation

KeyGen : Gestionnaire de clés d’activation

KeyGen est une petite application console Delphi qui expose un serveur HTTP (Indy) et des endpoints API pour générer, valider et produire en lot des clés d’activation.



Fonctionnalités

  • Génération de clés signées (HMAC + Base32)

  • Validation et détection de falsification

  • Batch generation

  • Interface web légère pour usage local


Architecture

  • Exécutable console (KeyGen.dpr) : Démarre un serveur HTTP intégré (Indy), sert une page index.html embarquée et expose trois endpoints API : /generate, /batch, /validate.

  • Unité KeyGenerator : Sérialise un payload (ProductID, Version, Edition, Expiry), calcule un HMAC-SHA1, ajoute une signature partielle + checksum, encode en Base32 et formate la clé en groupes lisibles.

  • Interface Web (JS + HTML) : formulaire de génération, batch, validation; appels fetch vers l’API; rendu des résultats et affichage JSON coloré.

  • Secret HMAC : Fourni au démarrage (Affichage d’astérisques) et passé explicitement aux fonctions Generate / Validate.


Schéma de données (payload)

  • ProductID : 4 octets (big-endian)

  • Version : 2 octets (Word, big-endian)

  • Edition : 1 octet

  • Expiry : 2 octets (Word) — nombre de jours depuis la date de base (2020-01-01). 0 = perpétuelle.

  • Signature : 6 premiers octets du HMAC-SHA1

  • Checksum : somme modulo 65536 de tous les octets HMAC (2 octets)


API et utilisation

Endpoints :

POST /generate Entrée JSON :

{ product: "A1B2C3D4", version: 1, edition: 0, expiryDays: 30 }

Réponse JSON :

{ key: "XXXXX-XXXXX-...", product: "a1b2c3d4", version: 1, edition: 0, expiry: 12345 }



POST /batch Entrée JSON :

{ product: "A1B2C3D4", count: 10, version: 1, edition: 0, expiryDays: 30 }

Réponse JSON :

{ keys: [ { index:0, product:"a1b2c3d4", key:"..." }, ... ] }



POST /validate Entrée JSON :

{ key: "XXXXX-XXXXX-..." }

Réponse JSON :

{ status: "valid" | "expired" | "tampered" | "invalid_format", product: "a1b2c3d4", version: 1, edition: 0, expiry: 12345 }




Liens de téléchargement : KeyGen.zip


Un petit clic (J'aime) qui fait plaisir !

Commentaires

Aucun commentaire pour le moment. Soyez le premier à commenter !

Vous devez vous connecter pour commenter.