Wenn es dir so sehr um Sichrheit geht, warum verwendest du gerade für so ein Thema nicht RSA?
Den kodierten Inhalt könntest du dir dann auch wieder dekodieren, um dem Anwender zum Beispiel anzuzeigen, wie lange seine Lizenz gültig ist, falls du sowas brauchst.
Mal ein Anwendungsbeispiel:
Kunde erhält achtstelligen Zahlenschlüssel
Kunde gibt den Schlüssel beim Freischalten ein.
Aus Schlüssel,HDD-Schlüssel, MAC wird vom Client ein RSA-Code erzeugt.
RSA Code wird zum Server geschickt und dort entschlüsselt
Passender Schlüssel in der Datenbank wird gesucht und der RSA-Code zu diesem Schlüssel eingetragen.
In der
DB liegen die Informationen zu Lizenzgültigkeit, Lizenzlaufzeit, Produkt etc...
Server erstellt neuen RSA-Code mit all diesen Infos und schickt ihn an den Client zurück.
Nun hat der Client "seinen" Schlüssel, über den das Produkt freigeschaltet ist in verschlüsselter Version vorliegen.
Btw. Das bedeutet allerdings, dass ein Webserver mit einem entsprechenden Modul läuft. Hatte damals für diesen Zweck eines mit Kylix für nen Apachen geproggt.