Une solution toute bete consiste à générer un CODE à partir du Nom de la personne utilisatrice et à partir du Nom du programme. Avantage : le système peut servir pour plein d'applications différentes, faut juste changer le nom du programme.
Une routine permet de calculer ce Code et de vérifier si le code saisi par l'utilisateur correspond à celui généré par son nom et par le nom du programme (qui est stocker dans celui ci).
Exemple en RealBasic :
Ici le Nom de la société est dans la variable : LICENCESOCIETE
Le nom du logiciel est dans la variable : LICENCEAPPLICATION
Le résultat du calcul de la clé est dans la variable : LICENCEVALEUR
Donc il faut alimenter à l'avance LICENCESOCIETE et LICENCEAPPLICATION pour récupérer LICENCEVALEUR
La clé calculée est de la forme : XXXXX-XXXXX-XXXXX-XXXXX
La variable SERIE contient une suite de caractères qui sert à calculer les caractères de la clé, à vous de la changer.
Je me souviens plus trop comment ça marche, mais je passe par la valeur ASCII de chaque caractère que je triture un peu beaucoup
Dim LaLongueur, i, j as integer
Dim LeTabl(0) as integer
Dim Serie, MotPass, LaClef, LicApp as string
LicApp = Left(LICENCEApplication+"ABCDEFGH01234567123456",20)
LaLongueur = Len(LicApp)
Serie = "536YFH7RNTAJCUVQ1MWLXOS0I4ZGBP9K8END2"
'--- initialisation du tableau ---
For i = 1 to LaLongueur
LeTabl.Append asc(Mid(LicApp, i, 1))
Next
'--- Alongement du mot de passe ---
if LICENCESociete = "" then
MotPass = "XAXAXAXASSAFE"
Else
MotPass = LICENCESociete
End
do until Len(MotPass) > LaLongueur * 3
MotPass = MotPass + MotPass + "X"
loop
'--- Boucle de calcul ---
j = 0
for i = 1 to len(MotPass)
j = j + 1
if j > LaLongueur then
j = 1
End
LeTabl(j) =LeTabl(j) + asc(mid(MotPass, i, 1))
next
'--- Transformation en cle ---
LaClef = ""
j = 0
for i = 1 to LaLongueur
j = j + 1
if j > 5 then
LaClef = LaClef + "-"
j = 1
End
LaClef = LaClef + mid(Serie, (floor(1.5 + LeTabl(i) mod len(Serie))),1)
next
LICENCEValeur=LaClef