begin process at 2010 02 10 02:40:34
  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 :5 327

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 GOLDEN PASSWORDS - STOCKEZ VOS MOTS DE PASSE ! par Bacterius
Source avec Zip Source avec une capture LEA EN MODE CHIFFREMENT (SEA) par Bacterius
Source avec Zip Source avec une capture DELPHI : SHA-1 EN MODE CHIFFREMENT (SHACAL) par FENETRES
Source avec Zip SECUSB ; LOGICIEL D'EFFACEMENT SÉCURISÉ POUR CLEF USB par ludodelphi
Source avec Zip PROTECTION COPIE CD, OU PROGRAMME SUR DONGLE USB par Huugooo

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


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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,686 sec (3)

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