Soyez le premier à donner votre avis sur cette source.
Snippet vu 10 094 fois - Téléchargée 32 fois
//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);
3 févr. 2016 à 23:53
22 avril 2009 à 12:11
22 avril 2009 à 12:09
22 avril 2009 à 11:15
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
5 oct. 2005 à 13:52
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
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.