Problème avec mcrypt de php
Résolu/Fermé
A voir également:
- Problème avec mcrypt de php
- Easy php - Télécharger - Divers Web & Internet
- \R php ✓ - Forum PHP
- Br php ✓ - Forum PHP
- Saut de ligne php ✓ - Forum PHP
- Expert php - Télécharger - Langages
2 réponses
Utilisateur anonyme
29 juil. 2017 à 18:31
29 juil. 2017 à 18:31
Pour ceux qui veulent le code finale, le voici :
function generate_key($size){ if($size > 0){ return bin2hex(openssl_random_pseudo_bytes($size)); } } function crypter($chaine, $key){ if($chaine != null){ $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC); $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); $ciphertext = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $chaine, MCRYPT_MODE_CBC, $iv); $ciphertext = $iv . $ciphertext; $ciphertext_base64 = base64_encode($ciphertext); return $ciphertext_base64; } } function decrypter($chaine_crypter, $key){ if($chaine_crypter != null){ $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC); $ciphertext_dec = base64_decode($chaine_crypter); $iv_dec = substr($ciphertext_dec, 0, $iv_size); $ciphertext_dec = substr($ciphertext_dec, $iv_size); $plaintext_dec = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $ciphertext_dec, MCRYPT_MODE_CBC, $iv_dec); return trim($plaintext_dec); } }
yg_be
Messages postés
23447
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
28 janvier 2025
Ambassadeur
1 562
Modifié le 29 juil. 2017 à 14:31
Modifié le 29 juil. 2017 à 14:31
bonjour, je vois deux éléments, y aurait-il un lien entre les deux?
1) il y a 4 caractères de valeur 00h à la fin de $plaintext_dec, comparé à $plaintext
2) ton commentaire "On doit supprimer les caractères de valeur 00h de la fin du texte plein"
d'où vient le commentaire?
suggestion pour bien voir les différences:
tiens, la chaîne décryptée à une longueur multiple de 8 octets!
il est, je pense, nécessaire de mémoriser la longueur de la chaîne avant encryption. moi je rajouterais cette information dans le texte avant encryption.
1) il y a 4 caractères de valeur 00h à la fin de $plaintext_dec, comparé à $plaintext
2) ton commentaire "On doit supprimer les caractères de valeur 00h de la fin du texte plein"
d'où vient le commentaire?
suggestion pour bien voir les différences:
echo '<br />'.strlen($plaintext_dec); echo '<br />'.strlen($plaintext); echo '<br />'.bin2hex($plaintext_dec); echo '<br />'.bin2hex($plaintext);
tiens, la chaîne décryptée à une longueur multiple de 8 octets!
il est, je pense, nécessaire de mémoriser la longueur de la chaîne avant encryption. moi je rajouterais cette information dans le texte avant encryption.
Bonjour, merci d'avoir prit le temps de répondre, le code provient de cette page : https://www.php.net/manual/fr/function.mcrypt-encrypt.php
je vois bien la différence mais comment régler se problème :/ ?
merci d'avance
je vois bien la différence mais comment régler se problème :/ ?
merci d'avance