Comment faire AES256 décryptage en PHP?
J'ai chiffré peu de texte que j'ai besoin de les décrypter. C'est crypté avec AES-256-CBC. J'ai le texte crypté, à la clé, et iv. Toutefois, peu importe ce que j'essaie, je n'arrive pas à le faire fonctionner.
L'internet a suggéré que mcrypt de Rijndael chiffre devrait être en mesure de le faire, donc voici ce que j'ai maintenant:
function decrypt_data($data, $iv, $key) {
$cypher = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_CBC, '');
//initialize encryption handle
if (mcrypt_generic_init($cypher, $key, $iv) != -1) {
//decrypt
$decrypted = mdecrypt_generic($cypher, $data);
//clean up
mcrypt_generic_deinit($cypher);
mcrypt_module_close($cypher);
return $decrypted;
}
return false;
}
Comme il est maintenant, je reçois 2 avertissements et la sortie est du charabia:
Warning: mcrypt_generic_init() [function.mcrypt-generic-init]: Key size too large; supplied length: 64, max: 32 in /var/www/includes/function.decrypt_data.php on line 8
Warning: mcrypt_generic_init() [function.mcrypt-generic-init]: Iv size incorrect; supplied length: 32, needed: 16 in /var/www/includes/function.decrypt_data.php on line 8
Toute aide serait appréciée.
OriginalL'auteur Jeremy Logan | 2009-10-27
Vous devez vous connecter pour publier un commentaire.
Je suis pas très familier avec ce genre de choses, mais il semble comme essayer
MCRYPT_RIJNDAEL_256
en place deMCRYPT_RIJNDAEL_128
serait une étape logique suivante...Edit: Vous avez raison-ce n'est pas ce dont vous avez besoin.
MCRYPT_RIJNDAEL_128
est en fait le bon choix. Selon le lien que vous avez fourni, votre clé et IV sont deux fois plus longtemps qu'ils devraient l'être:Bonne prise. Le lien que vous avez fourni a la réponse à votre question: Vous devrez fournir un 32 octets de la clé, et un de 16 octets IV. Vous êtes de passage dans des valeurs qui sont deux fois plus longtemps qu'ils devraient l'être.
Il s'avère que l'ont hex codé et juste nécessaire pour être exécuté à travers
pack('H*', $var)
.Désolé pour le déclenchement muet, mais qu'est-ce exactement avez-vous pack() ? Ive essayé de faire moi-même, sans aucune chance..
Vous utilisez le pack() pour convertir la représentation Hexadécimale de la binaire réel de 128/256 bits de la représentation.
OriginalL'auteur Frank Farmer
Je vous envoie un exemple,
Veuillez vérifier le code, ok
OriginalL'auteur Aron Elias Herrera Ponte