Crypter/decrypter un String pour un fichier ini

{dans un fichier ini, il faut éviter les caractères tels que #0,' ','=',[',']' sous peine
d'avoir une erreur. 2 solutions :
- soit on crypte le string suivant une table de caractères autorisés
- soit on stocke la valeur hexadécimal de chaque lettre
exemple ci dessous }

function CryptString( const S, Pwd: string): string;
var
I, J: Integer;
sPassword: string;
begin
Result := '';
sPassword := Pwd;

J := 1;
for I := 1 to Length(S) do
begin
Result := Result + IntToHex(Ord(S[I]) xor Ord(sPassword[J]), 2);
Inc(J);
if J > Length(sPassword) then J := 1;
end;
end;

function DecryptString( const S, Pwd: string): string;
var
I, J: Integer;
sPassword: string;
begin
Result := '';
sPassword := Pwd;

J := 1;
I := 1;
repeat
Result := Result + Chr(StrToInt('$' + Copy(S, I, 2)) xor
Ord(sPassword[J]));
Inc(I, 2);
Inc(J);
if J > Length(sPassword) then J := 1;
until I > Length(S);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
sCrypt: string;
begin
sCrypt := CryptString('texte à mettre dans l''ini', 'fobec');
showmessage('texte crypté :' + sCrypt);
Showmessage('texte en clair: ' + DecryptString(sCrypt, 'fobec'));
end;
Ajouter un commentaire
Pseudo
Adresse email
Site internet (optionnel)
Votre commentaire
Fiche de l'article
Mise a jour16/05/2005
VisualisationVu 3146 fois
PublicInternaute zz
CategorieDelphi - Trucs et astuces - Autre categorie
Auteur de l'article
SwissDelphiCenter SwissDelphiCenter
connecté le 02/11/2011
329 articles dans la section
Contacter l'auteur