cryptage

Eléphant du PHP | 259 Messages

28 mai 2007, 17:03

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
l'hébergeur gratuit que j'utilisais: http://www.freeheberg.com (pas de limitte de débit, BP, 1à10Go, bdd mysql illimitées )
mainteant je suis chez OVH, payant mais plus adapté à de gros sites

Mammouth du PHP | 505 Messages

28 mai 2007, 17:20

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.

Eléphant du PHP | 259 Messages

28 mai 2007, 17:33

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
l'hébergeur gratuit que j'utilisais: http://www.freeheberg.com (pas de limitte de débit, BP, 1à10Go, bdd mysql illimitées )
mainteant je suis chez OVH, payant mais plus adapté à de gros sites

Eléphant du PHP | 259 Messages

28 mai 2007, 19:00

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
l'hébergeur gratuit que j'utilisais: http://www.freeheberg.com (pas de limitte de débit, BP, 1à10Go, bdd mysql illimitées )
mainteant je suis chez OVH, payant mais plus adapté à de gros sites

Mammouth du PHP | 505 Messages

28 mai 2007, 19:52

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

Eléphant du PHP | 199 Messages

28 mai 2007, 20:25

// 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 ?
Klomac - Blog Lambda

Mammouth du PHP | 505 Messages

28 mai 2007, 20:39

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.

Eléphant du PHP | 199 Messages

28 mai 2007, 20:43

On en apprend tous les jours :) Merci bien, ça éclaire peut-être certains de mes problèmes... en tout cas je prends note :)
Klomac - Blog Lambda