Page 1 sur 1

petit problème fonctions mcrypt

Posté : 23 mai 2007, 17:33
par hel2013
Bonjour à tous, voila j'ai un petit problème :

Lorsque j'execute ce code là, la variable décryptée est parfois, en fonction de ce que j'ai a entré, mal décryptée.

J'obtiens des choses comme ca : re losque je rentre redf mais je peux aussi obtenir le bon texte lorsque j'écrit autre chose : dft, aser, ...

page testalgo.php

Code : Tout sélectionner

<html?gt; <body> <form action="testcryptage.php" method="POST"> <input type="text" size="32" name="aEncrypter"/> <button type="submit" value="valider">Envoyer</button> </form> </body> </html?gt;
page testcryptage.php

Code : Tout sélectionner

<? if (isset($_POST["aEncrypter"])) { // choix d'un algo, mode $algo = "gost"; // ou la constante php MCRYPT_BLOWFISH $mode = "cfb"; // ou la constante php MCRYPT_MODE_NOFB // calcul des longueurs max de la clé et de l'IV $key_size = mcrypt_module_get_algo_key_size($algo); $iv_size = mcrypt_get_iv_size($algo, $mode); // si, à ce stade, vous avez une erreur, c'est sans doute que soit l'algo, soit le mode ne sont // pas supportés par votre serveur. Utilisez mon script pour choisir des algo-modes compatibles. // création d'un IV aléatoire de la bonne longueur // vous pouvez mettre n'importe quoi dans $iv du moment qu'il est de la bonne longueur $iv = "aluteret"; // choix d'une clé secrète de cryptage/décryptage et mise à longueur $cle = "aadfthgjidefgrsgt"; $cle = substr($cle, 0, $key_size); // Phrase à crypter et cryptage $texte = $_POST["aEncrypter"]; $crypte = mcrypt_encrypt($algo, $cle, $texte, $mode, $iv); header("Location: http://youraac.adexys/testdecryptage.php?aDecrypter=$crypte"); } ?>
page testdecryptage.php

Code : Tout sélectionner

<? $algo = "gost"; $mode = "cfb"; // calcul des longueurs max de la clé et de l'IV $key_size = mcrypt_module_get_algo_key_size($algo); $iv_size = mcrypt_get_iv_size($algo, $mode); // si, à ce stade, vous avez une erreur, c'est sans doute que soit l'algo, soit le mode ne sont // pas supportés par votre serveur. Utilisez mon script pour choisir des algo-modes compatibles. // création d'un IV aléatoire de la bonne longueur // vous pouvez mettre n'importe quoi dans $iv du moment qu'il est de la bonne longueur //$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); $iv = "aluteret"; // choix d'une clé secrète de cryptage/décryptage et mise à longueur $cle = "aadfthgjidefgrsgt"; $cle = substr($cle, 0, $key_size); $crypte = $_GET["aDecrypter"]; $deCrypte = mcrypt_decrypt($algo, $cle, $crypte, $mode, $iv); // affichage de contrôle echo $deCrypte; ?>
J'ai essayé en modifiant l'algo et le mode de chiffrement mais rien n'y fait !

Si quelqu'un à quelque chose à proposer, je suis preneur !

Merci d'avance.

Ne chercher plus

Posté : 24 mai 2007, 13:40
par hel2013
Ne chercher plus, j'ai trouvé ! Je vous fait quand même pervenir la solution merci à tous pour votre forte participation !!

page testalgo.php
<html>
<body>
<form method = "POST" action="testcryptage.php">
<input type="text" size="23" name="message"/>
</form>
</body>
</html>
page testcryptage.php
<?
	$texte = $_POST["message"];
	// choix d'un algo, mode
	$algo = "gost"; // ou la constante php MCRYPT_BLOWFISH
	$mode = "cfb"; // ou la constante php MCRYPT_MODE_NOFB

	// calcul des longueurs max de la clé et de l'IV
	$key_size = mcrypt_module_get_algo_key_size($algo);
	$iv_size = mcrypt_get_iv_size($algo, $mode);
	$iv = "ydjskcgr";
	

	// choix d'une clé secrète de cryptage/décryptage et mise à longueur
	$cle = "aadfthgjidefgrsgt";
	$cle = substr($cle, 0, $key_size);

	// Phrase à crypter et cryptage
	$crypte = mcrypt_encrypt($algo, $cle, $texte, $mode, $iv);
	

	$crypte = base64_encode($crypte);
	$crypte = urlencode($crypte);
	
	header("Location: http://youraac.adexys/testdecryptage.php?crypte=$crypte");
	
?>
page testdecryptage.php
<?


if (isset($_GET["crypte"])) {
		
	
	$algo = "gost"; // ou la constante php MCRYPT_BLOWFISH
	$mode = "cfb"; // ou la constante php MCRYPT_MODE_NOFB

	// calcul des longueurs max de la clé et de l'IV
	$key_size = mcrypt_module_get_algo_key_size($algo);
	$iv_size = mcrypt_get_iv_size($algo, $mode);
	$iv = "ydjskcgr";
	

	// choix d'une clé secrète de cryptage/décryptage et mise à longueur
	$cle = "aadfthgjidefgrsgt";
	$cle = substr($cle, 0, $key_size);
	
	$crypte = $_GET["crypte"];
	$crypte = urldecode($crypte);
	$crypte = base64_decode($crypte);
	
	
	$deCrypte = mcrypt_decrypt($algo, $cle, $crypte, $mode, $iv);

		// affichage de contrôle
		echo $deCrypte;
	}
?>