begin process at 2012 02 08 16:18:50
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Sécurité

 > CRYPTER TOUT VOS FICHIERS

CRYPTER TOUT VOS FICHIERS


 Information sur la source

Note :
8 / 10 - par 1 personne
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Sécurité Niveau :Initié Date de création :13/09/2003 Date de mise à jour :13/09/2003 13:44:31 Vu :6 877

Auteur : Glorkonline

Ecrire un message privé
Site perso
Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note

 Description

Voici deux procedures qui permettent de crypter n'importe quel fichier (même les exe !). L'avantage est que la clef demandée à l'utilisateur peut être une String (pas comme dans le cryptage de fichier texte). La fonction StrToKey transforme cette string en longint (évidemment pas comme StrToInt ...).

Source

  • //La procedure qui crypte le fichier.
  • procedure FileCrypt(SourceFileName, DestFileName : String; CryptageKey : Longint; Crypt : Boolean);
  • type
  • CryptOpt = record
  • ExeSource : String;
  • ExeDest : String;
  • Key : Longint;
  • end;
  • CryptUtil = record
  • BufOrds : Array[1..2048] of Longint;
  • FromF, ToF : File;
  • Buf : Array[1..2048] of Char;
  • NumRead, NumWritten : Longint;
  • end;
  • var
  • CryptOpts : CryptOpt;
  • CryptUtils : CryptUtil;
  • I : Longint;
  • begin
  • //D'abord, copier les infos vers les champs utilisés :
  • CryptOpts.ExeSource := SourceFileName;
  • CryptOpts.ExeDest := DestFileName;
  • CryptOpts.Key := CryptageKey;
  • //Ouvrons ensuite les variables FromF(fichier source) et
  • //ToF(fichier destination)
  • Assign(CryptUtils.FromF, CryptOpts.ExeSource);
  • Reset(CryptUtils.FromF, 1);
  • Assign(CryptUtils.ToF, CryptOpts.ExeDest);
  • Rewrite(CryptUtils.ToF, 1);
  • //Passons à la proc. de cryptage :
  • Repeat
  • BlockRead(CryptUtils.FromF, CryptUtils.Buf, SizeOf(CryptUtils.Buf), CryptUtils.NumRead);
  • For i := 1 to 2048 do begin
  • CryptUtils.BufOrds[i] := ord(CryptUtils.Buf[i]);
  • If Crypt = True then CryptUtils.BufOrds[i] := CryptUtils.BufOrds[i] + CryptOpts.Key
  • Else CryptUtils.BufOrds[i] := CryptUtils.BufOrds[i] - CryptOpts.Key;
  • CryptOpts.Key := CryptOpts.Key + 1;
  • CryptUtils.Buf[i] := chr(CryptUtils.BufOrds[i]);
  • end;
  • BlockWrite(CryptUtils.ToF, CryptUtils.Buf, CryptUtils.NumRead, CryptUtils.NumWritten);
  • Until ((CryptUtils.NumRead = 0) or (CryptUtils.NumRead <> CryptUtils.NumWritten));
  • //Et voilà ! Y'a plus qu'à fermer les variables (FromF et ToF)
  • Close(CryptUtils.FromF);
  • Close(CryptUtils.ToF);
  • end;
  • //La fonction qui transforme une string en clef (Longint).
  • function StrToKey(Str : String) : Longint;
  • var
  • I, J : Longint;
  • begin
  • Result := 0;
  • For i := 1 to length(Str) do begin
  • J := ord(Str[i]);
  • Result := Result + J;
  • end;
  • end;
  • //Utilisation :
  • //Pour crypter
  • FileCrypt(Lenomdufichiersource,Lenomdufichierdestination,StrToKey(LaphraseClef),True);
  • //pour décrypter
  • FileCrypt(Lenomdufichiersource,Lenomdufichierdestination,StrToKey(LaphraseClef),False);
//La procedure qui crypte le fichier.

procedure FileCrypt(SourceFileName, DestFileName : String; CryptageKey : Longint; Crypt : Boolean);
type
 CryptOpt = record
  ExeSource : String;
  ExeDest : String;
  Key : Longint;
 end;
 CryptUtil = record
  BufOrds : Array[1..2048] of Longint;
  FromF, ToF : File;
  Buf : Array[1..2048] of Char;
  NumRead, NumWritten : Longint;
 end;
var
 CryptOpts : CryptOpt;
 CryptUtils : CryptUtil;
 I : Longint;
begin
 //D'abord, copier les infos vers les champs utilisés :
 CryptOpts.ExeSource := SourceFileName;
 CryptOpts.ExeDest := DestFileName;
 CryptOpts.Key := CryptageKey;
 //Ouvrons ensuite les variables FromF(fichier source) et
 //ToF(fichier destination)
 Assign(CryptUtils.FromF, CryptOpts.ExeSource);
 Reset(CryptUtils.FromF, 1);
 Assign(CryptUtils.ToF, CryptOpts.ExeDest);
 Rewrite(CryptUtils.ToF, 1);
 //Passons à la proc. de cryptage :
 Repeat
  BlockRead(CryptUtils.FromF, CryptUtils.Buf, SizeOf(CryptUtils.Buf), CryptUtils.NumRead);
  For i := 1 to 2048 do begin
   CryptUtils.BufOrds[i] := ord(CryptUtils.Buf[i]);
   If Crypt = True then CryptUtils.BufOrds[i] := CryptUtils.BufOrds[i] + CryptOpts.Key
   Else CryptUtils.BufOrds[i] := CryptUtils.BufOrds[i] - CryptOpts.Key;
   CryptOpts.Key := CryptOpts.Key + 1;
   CryptUtils.Buf[i] := chr(CryptUtils.BufOrds[i]);
  end;
  BlockWrite(CryptUtils.ToF, CryptUtils.Buf, CryptUtils.NumRead, CryptUtils.NumWritten);
 Until ((CryptUtils.NumRead = 0) or (CryptUtils.NumRead <> CryptUtils.NumWritten));
 //Et voilà ! Y'a plus qu'à fermer les variables (FromF et ToF)
 Close(CryptUtils.FromF);
 Close(CryptUtils.ToF);
end;

//La fonction qui transforme une string en clef (Longint).

function StrToKey(Str : String) : Longint;
var
 I, J : Longint;
begin
Result := 0;
For i := 1 to length(Str) do begin
J := ord(Str[i]);
Result := Result +  J;
end;
end;

//Utilisation :

//Pour crypter
FileCrypt(Lenomdufichiersource,Lenomdufichierdestination,StrToKey(LaphraseClef),True);

//pour décrypter
FileCrypt(Lenomdufichiersource,Lenomdufichierdestination,StrToKey(LaphraseClef),False);

 Conclusion

Glorkonline --- Glorkonline.be.tf --- Glorkonline@hotmail.com


 Sources du même auteur

Source avec Zip Source avec une capture VERROU WINDOWS
REMPLACER LE TEXTE PAR DES * DANS UN READLN
LA SOURIS À BUT !
Source avec Zip CRYPTEUR DE FICHIERS TEXTE.
Source avec Zip CRÉER UN PETIT CONSEIL.

 Sources de la même categorie

Source avec Zip Source avec une capture EXE PROTECTOR V1 par MrClock
Source avec Zip Source avec une capture LYNX : CHIFFREMENT À BLOC/FLUX, EXEMPLE INCLUS par Bacterius
Source avec Zip FBCREATEUSER par fbalien
Source avec Zip Source avec une capture SCANNER DE MALWARES ( ßE SCANNER ) par MrClock
Source avec Zip Source avec une capture GOLDEN PASSWORDS - STOCKEZ VOS MOTS DE PASSE ! par Bacterius

Commentaires et avis

Commentaire de kanabis le 20/12/2004 15:44:03

A koi correspond : LaphraseClef ?
Merci.

Commentaire de Glorkonline le 01/01/2005 16:29:56

Eh ben, tu demande un phrase (ou un passe) à celui qui veut crypte/décrypter son fichier + le nom de son fichiers à crypter + le nom du fichier dans lequel le contenu crypté sera placé.

Commentaire de elguevel le 05/10/2005 13:52:23

J'ai juste vu ta fonction là ... et été t-il necessaire de faire 2 records dans ta fonctions ? (CryptOpt et CryptUtil)

Et tu as mis ta source en initié... j'ai été deçu de voir que tu n'as fait qu'un ROT (cryptage de cesars).

Mais bon c'est pas mal quand meme.

Damien

Commentaire de benabdessamed le 22/04/2009 11:15:51

bonjour,
j'ai un probleme avec ce source, lorsque je fait un deuxieme appelle
,il plante avec le message erreur : "E/S 32"
qq, sait pourquoi j'ai cette erreur
merci à l'avence

Commentaire de benabdessamed le 22/04/2009 12:09:44

j'ai oublier de fermer le fichier

Commentaire de benabdessamed le 22/04/2009 12:11:37

j'ai pas fermer le fichier et c'est tous

 Ajouter un commentaire




Nos sponsors


Appels d'offres

Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,858 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales