Soyez le premier à donner votre avis sur cette source.
Vue 37 621 fois - Téléchargée 3 675 fois
unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type Tfprincipe = class(TForm) Button1: TButton; Button2: TButton; Label1: TLabel; epwd: TEdit; OpenDialog1: TOpenDialog; SaveDialog1: TSaveDialog; Button3: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); private { DÚclarations privÚes } public { DÚclarations publiques } procedure gc(encrypter : boolean); end; var fprincipe: Tfprincipe; implementation {$R *.DFM} uses crypt; procedure Tfprincipe.gc(encrypter : boolean); var source,dest : pointer; f : file; size : longword; pwd : pchar; s : string[128]; begin if opendialog1.execute then begin savedialog1.filename := opendialog1.filename+'2'; if savedialog1.execute then begin assignfile(f,opendialog1.filename); reset(f,1); size := filesize(f); source := nil; dest := nil; reallocmem(source,size); reallocmem(dest,size); blockread(f,source^,size); closefile(f); s := epwd.text+#0; pwd := @s; crypter(source,dest,size,pwd,encrypter); assignfile(f,savedialog1.filename); rewrite(f,1); blockwrite(f,dest^,size); closefile(f); end; end; end; procedure Tfprincipe.Button1Click(Sender: TObject); begin gc(true); end; procedure Tfprincipe.Button2Click(Sender: TObject); begin gc(false); end; procedure Tfprincipe.Button3Click(Sender: TObject); begin application.terminate; end; end.
5 mars 2008 à 19:17
30 août 2006 à 02:47
travailler en memoire ça bouffe trop de ressource et a 45-60Mo/s on ne voit pas la difference a moins d'avoir des DD en choux-fleurs.
en gros ça se passe comme ça :
flux disque source --> cryptage --> flux disque destination
idem pour le decryptage.
ensuite c'est bourrin de travailler encore avec AssignFile, reset et consort, LE PASCAL EST MORT! TFileStream !
29 août 2006 à 10:18
sivaller, c'est la dll qui est interessante ici, pas une source qui l'utilise simplement. aurais tu la source de cett dll ?
29 août 2006 à 09:37
28 août 2006 à 13:21
* D'abord, utilisation de:
source:=nil;
reallocmem(source,size);
alors que la variable source n'est utilisée qu'une fois. Il est plus simple d'utiliser GetMem. Idem pour la variable dest. De plus, tu ne libères pas cette mémoire que tu as allouée.
* Ensuite, imagine que ton fichier fasse 1 gigaoctet. Tu écris:
size := filesize(f);
...
reallocmem(source,size);
L'utilisateur a intérêt à avoir beaucoup de RAM, pour allouer un bloc de 1 giga! ;-)
Il est préférable de découper le fichier en morceaux d'une taille plafonnée à quelques méga-octets (au maximum!), que tu cryptes séparément.
Serait-il possible d'avoir les sources de la DLL, ou au moins le nom et une description de la méthode de cryptage utilisée?
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.