1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
|
<?
///////(c) Musco93200 ////////
// cryptage de fichier
// le 5 fevrier a 5:14
///////////////////////////////
//~~~~Crypte le fichier
function crypte_fichier($chemin_fichier,$chaine_crypt,$chemin1_fichier){
$lignecripte="";
$bytes = 65536;//nombre de bytes par ligne de cryptage
//remplit une ligne de cryptage de longueur 65536 bites
for ($i = 0; $i <= floor($bytes/strlen($chaine_crypt)); $i++) $lignecripte.= $chaine_crypt;
//ouvre le fichier a crypter en lecture
//cree le nouveau fichier
if (file_exists($chemin_fichier)){//verifie presence du fichier
chmod($chemin_fichier,0777);//attribue tous droits
$ancien = fopen($chemin_fichier, "rb");
$nouveau = fopen($chemin1_fichier, "wb");
// crypt le fichier et ecrie dans le nouveau fichier par ligne de 65536 bites
while($line = fread($ancien, $bytes)){
$line2 = $line ^ $lignecripte;//effectue un OU EXCLUSIF (XOR) sur les bits 10011s^ 10110=00101
fputs($nouveau, $line2);}
// ferme les fichiers
fclose($ancien);fclose($nouveau);
unlink($chemin_fichier);//suprimme l'ancien fichier
}}
//~~~~declare les entetes de fichier~~~~//
function telecharge($nomfichier,$chemin1_fichier){
//entete de header precise au navigateur l'envoi d'un fichier
header("Content-disposition: attachment; filename=$nomfichier");
header("Content-Type: application/force-download");
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($chemin1_fichier));
header("Pragma: no-cache");
header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0");
header("Expires: 0");
}
//~~~~Decrypte le fichier~~~~//
//fonction a appler apres avoir declarer les header ouvrira une boite de telechargement
function decrypte_file($chemin1_fichier,$chaine_crypt){
$bytes = 65536; //bite par ligne
$lignecripte="";
$chainecrypte=$chaine_crypt;
//remplit une ligne de cryptage de longueur 65536 bites
for ($i = 0; $i <= floor($bytes/strlen($chainecrypte)); $i++) $lignecripte.= $chainecrypte;
// ouvre le fichier
$file = fopen($chemin_fichier, "rb");
while($line = fread($file, $bytes)){
$line2 = $line ^ $lignecripte;//effectue un OU EXCLUSIF (XOR) sur les bits 10011s^ 10110=00101
// affichage du fichier
echo $line2;
}
}
///~~~~~progrmamme ~~~~~~~////
$chemin_fichier="adresse comple de votre fichier"
$chemin_fichier=$_SERVER['DOCUMENT_ROOT']."/fichier1.zip" //adresse fichier origine se trouvant sur la racine de votre serveur
$chaine_crypt="MUSCO93200"//n'importe kel chaine
$chemin1_fichier=$_SERVER['DOCUMENT_ROOT']."/rep_crypt/fichier1.zip" //adresse fichier crypter
$nom_fichier="fichier1.zip"//nom du fichier a afficher ldans la boite de telechargement fichier
//crypte le fichier "fichier1.zip" avec la cle "musco93200" et l'enregistre
//dans le repertoire "/rep_crypt/" et ensuite suprime le fichier origine
crypte_fichier($chemin_fichier,$chaine_crypt,$chemin1_fichier);
//declare les header pour dire a la page ke c'est un fichier a telecharger methode de force de telechargement
telecharge($nomfichier,$chemin1_fichier);
//decrypt le fichier "fichier1.zip" qui se trouve dans le repertoire "/rep_crypt/"
decrypte_file($chemin1_fichier,$chaine_crypt)
?> |
Partager