Cryptage et décryptage de chaine

Contenu du snippet

Voici deux fonctions qui servent a decrypter et a crypter des chaines: c'est mon premier programme delphi, en fait j'ai traduit une de mes sources vb en delphi, ça marche chez moi!

Source / Exemple :


{déclarations}

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Borland.Vcl.StdCtrls, System.ComponentModel;

    function crypter(chainetocrypt: String; cryptkey: String): string;
  Function decrypter(chainetodecrypt: String; cryptkey: String): String;

{fonctions}
   function crypter(chainetocrypt: String; cryptkey :String) :string;
   var
   crypte: String;
   cpt,i: longint ;
begin
crypter := '';
cpt := 1;
For i := 1 To Length(chainetocrypt) do
   begin
    If cpt > Length(cryptkey) Then cpt := 1;
        If integer(ord(chainetocrypt[i])) + integer(ord(cryptkey[cpt])) > 255 Then {on vérifie que la some du code ascii ne soit pas supérieur a 255 sinon erreu}
        result := result + Char((integer(ord(chainetocrypt[i])) + integer(ord(cryptkey[cpt]))) - 255) {'si c'est le cas on enlève 255}
    Else
        result := result + Char(integer(ord(chainetocrypt[i])) + integer(ord(cryptkey[cpt]))); {'on ajoute le caractère crypté a la fonction}

    cpt := cpt + 1;
end;

End;

Function decrypter(chainetodecrypt: String; cryptkey: String):String;
   var
   crypte: String;
   cpt,i: longint ;
begin
decrypter := '';
cpt := 1;
For i := 1 To Length(chainetodecrypt) do
begin
    If cpt > Length(cryptkey) Then cpt := 1;
        If (integer(ord(chainetodecrypt[i])) - integer(ord(cryptkey[cpt]))) < 0 Then {'on vérifie que la some du code ascii ne soit pas inférieur a 0 sinon erreur}
        result := result + Char((integer(ord(chainetodecrypt[i])) - integer(ord(cryptkey[cpt]))) + 255) {'si c'est le cas on ajoute 255}
    Else
        result := result + Char(integer(ord(chainetodecrypt[i])) - integer(ord(cryptkey[cpt]))); {'on ajoute le caractère décrypté a la fonction}

    cpt := cpt + 1;
end;
End;

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.