Zip

Le
Kloug
Bonjour,
Y a t il un moyen de protéger un fichier
compressé par un mot de passe ?
Merci de vos pistes
K
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Chris Hamza
Le #17721331
Oui bien sûr .
à l'aide de winrar
"ajouter aux archives " ==> choisir l'onglet " avancé " ==>
et ensuite cliquer sur le bouton ==> " Définir le mot de passe "
c'est assez simple
Kloug
Le #17729081
>à l'aide de winrar


Oui mais en Php ?
Merci
K
Mickael Wolff
Le #17729091
Chris Hamza a écrit :
Oui bien sûr .
à l'aide de winrar



Je ne sais pas si tu as remarqué, mais ici, c'est fr.comp.lang.php et
non microsoft.public.fr.windowsxp.debutants.

En tout cas, les API disponibles dans PHP ne permettent pas de
définir un mot de passe. C'est certainement parce qu'il est vain de
vouloir utiliser un mot de passe pour un zip : c'est craqué en quelques
minutes avec de la chance, en quelques heures dans le cas contraire.

--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org
Sylvain SF
Le #17730211
Kloug a écrit :
à l'aide de winrar


Oui mais en Php ?



pour chiffrer des données:

mcrypt_decrypt()
mcrypt_encrypt()
ou
mcrypt_generic[_xxxx]()

pour chiffrer en fichier en sortie:

$fp = fopen('out.bin', 'wb');
stream_filter_append($fp, $algo, STREAM_FILTER_WRITE, $opts);
fwrite($fp, $someStuff);
fclose($fp);

avec $algo le nom de l'algo (eg 'mcrypt.tripledes')
et $opts la clé et un ICV optionnel.

Sylvain.
Mickael Wolff
Le #17731131
Sylvain SF a écrit :

mcrypt_decrypt()
mcrypt_encrypt()
ou
mcrypt_generic[_xxxx]()



C'est compatible avec le « standard » Zip ? Parce que j'ai essayé
quelque chose, mais ce n'est pas très concluant :

== 8< === exzip.php = <?php

$zip = new ZipArchive ;

$ret = $zip->open('toto.zip', ZipArchive::CREATE) ;

$content =<<<EOS
<toto>
<blague />
</toto>
EOS;

$zip->addFromString('toto.xml', $content) ;

$cipher = mcrypt_module_open('des', null, 'ecb', null) ;
$iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($cipher), MCRYPT_RAND);
mcrypt_generic_init($cipher, 'totoro', $iv) ;
$crypted = mcrypt_generic($cipher, $content) ;
mcrypt_module_close($cipher) ;

$zip->addFromString('toto.sxml', $crypted) ;
$crypted = null ;

$zip->close() ;
== 8< === exzip.php =
Lorsqu'on ouvre l'archive, il n'y a pas la demande de mot de passe.
Je pense qu'il faut créer un en-tête Zip spécifique pour le fichier
crypté. Et j'ai pas envie de fouiller
http://www.pkware.com/documents/casestudies/APPNOTE.TXT pour trouver
comment ;) Mais à ce que j'ai compris, les outils nécessaires pour faire
un zip « protégé » comme il faut, il n'y a pas la fonctionnalité qui va
bien.


--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org
Sylvain SF
Le #17739451
Mickael Wolff a écrit :

mcrypt_decrypt()
mcrypt_encrypt()
ou
mcrypt_generic[_xxxx]()



C'est compatible avec le « standard » Zip ? Parce que j'ai essayé
quelque chose, mais ce n'est pas très concluant



non cela ne l'est pas - heureusement.

comme tu l'as indiqué les mots de passe ZIP sont cassés en qlq heures,
ils n'ont donc aucun intérêt, la crypto. ordinaire fournie par PHP est
bien plus robuste; si le but est de chiffrer pour confidentialité et
zipper pour gain de volume, on zippera, puis on chiffrera l'archive,
l'inverse à la réception; si le but est de faire semblant de protégér
un ZIP devant être traité avec un seul unzippeur, il est inutile de
se mentir.

Sylvain.
Publicité
Poster une réponse
Anonyme