2010-06-17 9 views
0
class Crypt_Data { 

    protected $_mcrypt=null; 
    protected $_iv=null; 
    protected $_key=null; 

    public function __construct() { 
      $this->_mcrypt = mcrypt_module_open('rijndael_256', '', 'cbc', ''); 
      $key_size = mcrypt_enc_get_key_size($this->_mcrypt); 
      for($i=0;$i<$key_size;$i++) $test_key .= "0"; 
      $this->_iv = $test_key; 
      $this->_key = $test_key; 
      mcrypt_generic_init($this->_mcrypt,$this->_key,$this->_iv); 
    } 

    public function dataEncrypt($data) { 
      return base64_encode(mcrypt_generic($this->_mcrypt, $data)); 
    } 
    public function dataDecrypt($data) { 
      return mdecrypt_generic($this->_mcrypt, base64_decode($data)); 
    } 
} 

$crypt = new Crypt_Data(); 
$string = "encrypt me"; 
$encrypted = $crypt->dataEncrypt($string); 
echo $encrypted."<BR>"; 

$decrypted = $crypt->dataDecrypt($encrypted); 
echo $decrypted."<BR>"; 

sortie:J'ai une implémentation générique du module de chiffrement PHP et son pas déchiffrer

JJKfKxZckkqwfZ5QWeyVR + 3PkMQAsP0Gr1hWaygV20I =

qÌÌi_ÖZí (®`iÜ ¥ wÝÿ o0 € Í6Ÿhf [% ér

Aucune idée pourquoi cela ne fonctionne pas, tout semble bien se passer de ma part .. j'ai essayé de le décrypter avec mcrypt_cbc(), et il l'a décrypté correctement .. donc ça a quelque chose à voir avec mon mdecrypt_generic .. des idées?

Répondre

0

Vous devez exécuter mcrypt_generic_init pour réinitialiser à nouveau tous les tampons ayant les mêmes valeurs avant mdecrypt_generic.