GESTIONNAIRE DE FICHIERS DE CONFIGURATION

Signaler
Messages postés
814
Date d'inscription
vendredi 3 novembre 2000
Statut
Membre
Dernière intervention
30 juillet 2009
-
Messages postés
10
Date d'inscription
vendredi 9 mai 2008
Statut
Membre
Dernière intervention
1 décembre 2008
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/41171-gestionnaire-de-fichiers-de-configuration

Messages postés
10
Date d'inscription
vendredi 9 mai 2008
Statut
Membre
Dernière intervention
1 décembre 2008

Ce projet semble fort interessant, mais ne se compile pas sous Delphi5...
erf...
Vais essayer d'étudier la source quand même
beau boulot...
Messages postés
93
Date d'inscription
mardi 11 avril 2006
Statut
Membre
Dernière intervention
4 mars 2009

f0xi,

Moi qui me disait perfectionniste, je pense que je suis largement battu ! Mais je prends note ...

J'aimerais faire évoluer cette classe en offrant la possibilité de stocker des données cryptées, comme un mot de passe par exemple, en utilisant un algorithme DES. Il y aurait un attribut ClefPrivee dans la classe et on pourrait utiliser le TId comme clef publique.

Qu'en penses-tu ?
Messages postés
4200
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
30
petite modif qu'on peu appliquer a GenerateID :
(on a pas besoin d'une locale Tid puisqu'on as deja result)

function GenerateId : TId;
type
QuadWord = array[0..3] of word;
ArrChar = array[0..7] of char;
var
QW1,QW2 : QuadWord;
Uid : int64;
pB : ^byte;
N : integer;
begin
repeat
// Initialisation
QW1 := QuadWord( $5C951D1DE74FCC32 xor Random(High(int64)) );
QW2 := QuadWord( $0A5628FAD43E96CB xor Random(High(int64)) );

// Un algorithme simple de chiffrement
QW2[0] := word( (QW2[3] shl 13) or (QW1[0] shr 3) );
QW1[3] := word( (QW1[2] shl 15) or (QW2[3] shr 1) );
QW2[1] := word( (QW2[0] shl 9) or (QW1[1] shr 7) );
QW1[2] := word( (QW1[1] shl 12) or (QW2[2] shr 4) );
QW2[2] := word( (QW2[1] shl 5) or (QW1[2] shr 11) );
QW1[1] := word( (QW1[0] shl 8) or (QW2[1] shr 8) );
QW2[3] := word( (QW2[2] shl 2) or (QW1[3] shr 14) );
QW1[0] := word( (QW1[3] shl 4) or (QW2[0] shr 12) );

// Finalisation
Uid := int64(QW1) xor int64(QW2);

// Suppression des 00
pB := @Uid;
for N := 0 to 7 do begin
if pB^ <= $0F then pB^ := $0F+(random($E9)+1);
inc(pB);
end;

// Conversion du résultat en TId
result := IntToId(Uid);

// Si l'unicité du TId est vérifiée, on le mémorise en on quitte
if IdTable.IndexOf(result) = -1 then begin
IdTable.Add(Result);
Exit;
end;

// Répéter l'opération jusqu'à ce qu'un TId unique soit trouvé
until True;
end;
Messages postés
4200
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
30
ouai c'est sur que le truc pourris des record pour les config c'est carrement pas exploitable a sec par d'autre logiciel...
Afficher les 11 commentaires