Page 1 sur 1

cryptage

Posté : 28 mai 2007, 17:03
par yuuzhantar
bonjour

pour améliorer la sécurité de mon site, je commence à m'interresser au cryptage

j'ai trouver plusieurs idées qui pourrait m'être utiles, par exemple découper un chaine de caractères, pour chaque caractère lui attribuer un ensemble de caractères de longueur fixe d'un "table de cryptage" qui puise etre décodé après en redécoupant et en remettant les caractères

mais aussi j'ai trouvé ceci avec google :
http://www.info-3000.com/phpmysql/crypt ... yptage.php

qu'en pensez-vous niveau sécurité ?
et si vous avez des idées à me proposer pour améliorer ce bout de code , ou d'autres idée de cryptage

merci

yuuzhantar

Posté : 28 mai 2007, 17:20
par titerm
Il y a une extension standard mcryptqui gère une grande variété d'algo de cryptage.

Outre le fait que ces algos sont public, connu et reconnu, il sont codé en C et donc bien plus rapide qu'une version faite en php.

Quand a l'algo de ta page exemple, basé sur 2 xor et un seed time, on ne peut pas véritablement parler de cryptage... Tout au plus, masquage. Franchement, oublie ce truc, ce n'est vraiment pas sérieux.

Posté : 28 mai 2007, 17:33
par yuuzhantar
d'accord merci

si je comprends bien, dans
$encrypted_data = mcrypt_ecb(MCRYPT_TripleDES, $key, $input, MCRYPT_ENCRYPT);
on met notre entrée, notre clée et hop on a notre cryptage généré ?
est ce que plus la clé est longue, avec divers caractères ..., plus c'est sécurisé ?

et parmis ces quatres mcrypt, laquelle me conseillerais-tu ?
mcrypt_cfb(), mcrypt_cbc(), mcrypt_ecb() et mcrypt_ofb())

merci

Posté : 28 mai 2007, 19:00
par yuuzhantar
pourquoi ce bout de code me revoi ce warning ? je ne comprends pas où est le problème
<?php
$key="ae74fe4e5rgerg";
$input="Rencontrons-nous dans notre place secrète à 9 h 00.";
$encrypted=mcrypt_ecb(MCRYPT_TripleDES, $key, $input, MCRYPT_ENCRYPT);
$decrypted=mcrypt_ecb(MCRYPT_TripleDES, $key, $encrypted, MCRYPT_DECRYPT);
echo"<br>$input<br>$encrypted<br>$decrypted";
?> 
[quote]Warning: mcrypt_ecb() [function.mcrypt-ecb]: Attempt to use an empty IV, which is NOT recommend in D:\FTP\www\clients\yuuzhantar\crypt.php on line 4

Warning: mcrypt_ecb() [function.mcrypt-ecb]: Attempt to use an empty IV, which is NOT recommend in D:\FTP\www\clients\yuuzhantar\crypt.php on line 5

Rencontrons-nous dans notre place secrète à 9 h 00.
œù€âáXÉ)›½9

Posté : 28 mai 2007, 19:52
par titerm
mcrypt_ecb(), d'après la doc, est deprecated et ne doit plus etre utiliser.

Il faut utiliser mcrypt_generic() et mdecrypt_generic() a la place.


<?php

$key="ae74fe4e5rgerg";
$input="Rencontrons-nous dans notre place secrète à 9 h 00.";
$td = mcrypt_module_open('tripledes', '', 'ecb', '');
$iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td), mcrypt_RanD);
mcrypt_generic_init($td, $key, $iv);
$encrypted = mcrypt_generic($td, $input);

/* Reinitialize buffers for decryption */
mcrypt_generic_init($td, $key, $iv);
$decrypted = mdecrypt_generic($td,$encrypted);

/* Clean up */
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
echo"<br>$input<br>$encrypted<br>$decrypted";  

// Prend l'habitude de ne pas fermer le ?> quand ce n'est que du php, cela évite bien des erreurs de caractère parasites

Posté : 28 mai 2007, 20:25
par Klomac
// Prend l'habitude de ne pas fermer le ?> quand ce n'est que du php, cela évite bien des erreurs de caractère parasites
Tu peux t'expliquer ?

Posté : 28 mai 2007, 20:39
par titerm
Oui, je peux...

le ?> est facultatif. Quand on a un fichier avec uniquement du php, le ?> ne sert a rien.
De plus, il arrive frequement qu'une ligne vide soit ajoutée par erreur apres le ?> sans qu'on s'en rend compte. Par la suite, on se retrouve avec soit un saut de ligne ou une problème de mise en forme html dont on a du mal a trouver l'origine, ou une erreur du type utilisation de header() impossible, car des caractères ont déjà été emis.

Le Zend framework, par exemple, recommende dans ses normes de codage, de ne pas mettre le ?> en fin de fichier.

Posté : 28 mai 2007, 20:43
par Klomac
On en apprend tous les jours :) Merci bien, ça éclaire peut-être certains de mes problèmes... en tout cas je prends note :)