Envoi d'une chaîne cryptée par mcrypt via un paramètre d'URL - le texte décodé est altéré

Je me suis amusé avec un simple régime d'autorisation. Je pense que la façon la plus simple de le faire sans SSL ou autre HTTP auth serait un cryptage à clé partagée. L'adaptation d'un exemple simple de le manuel PHP, je suis venu avec les éléments suivants:

$text = "boggles the invisible monkey will rule the world";
$key = "This is a very secret key";

$iv_size = mcrypt_get_iv_size(MCRYPT_BLOWFISH, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);

$enc = mcrypt_encrypt(MCRYPT_BLOWFISH, $key, $text, MCRYPT_MODE_ECB, $iv);

$iv = base64_encode($iv);
$enc = base64_encode($enc);

echo '<a href="temp2.php?iv='.$iv.'&text='.$enc.'">link</a><br />';

La page qui reçoit cette demande (temp2.php ressemble à ceci:

$key = "This is a very secret key";

$iv = base64_decode($_GET["iv"]);
$enc = base64_decode($_GET["text"]);

$crypttext = mcrypt_decrypt(MCRYPT_BLOWFISH, $key, $enc, MCRYPT_MODE_ECB, $iv);

echo "$crypttext<br>";

Cela devient très près, mais il n'a pas décoder correctement-- il fait écho à

boggles the invisible monkey will rule t—;eôügJë

Je ne suis pas sûr de ce que le raccrochage est, j'ai essayé la fonction urlencode/urldecode et htmlentities, pensant peut-être qu'un personnage a été mutilé à la demande, mais pas de différence.

Est-il autre chose que je suis absent? Peut-être un rembourrage?

Grâce

source d'informationauteur julio