Error Undefined offset 1 (al descifrar con openssl_decrypt)

Iniciado por SrTrp, 20 Enero 2018, 22:15 PM

0 Miembros y 1 Visitante están viendo este tema.

SrTrp

Bueno tengo encriptadas password en mi bd y al momento que pongo una contraseña no validad me dice esto
Undefined offset 1 in LARUTADEDONDENECRIPTO on line 11
y es algo molesto ya que aparece rapido ese anuncio y vuelve al index, este es mi código
Mi encriptador este es donde me da el error
Código (php) [Seleccionar]

public static function decrypt($data, $key) {
   $encryption_key = base64_decode($key);
   list($encrypted_data, $iv) = explode('::', base64_decode($data), 2);// ESTA ES LA LINEA 11
   return openssl_decrypt($encrypted_data, 'RC4', $encryption_key, 0, $iv);
   }


Mi loggeo php si no es correcta la contraseña me mandaría al index tomando un get de error
El error que les comento solo pasa cuando escribo una contraseña incorrecta.
Código (php) [Seleccionar]

 $descript = EncrypterFull::decrypt($f['password'], $keyend);
              $descriptip = EncrypterFull::decrypt($f['ip'], $keyend);
              $ipalterna = ($f['ip_alter']);
               if($pass==$descript){
                   if($ipalterna==1){
                       session_start();
                       $_SESSION['id']=$f['id'];
                       $ipconfig = EncrypterFull::encrypt($ip, $keyend);
                   
                       header("Location: ../../../Main.php");  
                   }else{
                   if($ip==$descriptip){
                       session_start();
                       $_SESSION['id']=$f['id'];
                       
                       $ipconfig = EncrypterFull::encrypt($ip, $keyend);
                     .............................
.....................
                       $link->query($sqlts2);
                       header("Location: ../../../Main.php");  
                    }else{
                      $error4 = base64_encode(2);
                       echo "<script>location.href='/index.php?error=$error4'</script>";
                    }
                   }
               }else{
                   $error3 = base64_encode(3);
                   echo "<script>location.href='/index.php?error=$error3'</script>";
               }








engel lex

puedes agregar un @ al principio de una linea para que se suprima todo error relacionado, pero lo apropiado es hacer bien el codigo...

Código (php) [Seleccionar]
$temporal = explode...
if(count($temporal)>....


El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

SrTrp

Cita de: engel lex en 21 Enero 2018, 00:07 AM
puedes agregar un @ al principio de una linea para que se suprima todo error relacionado, pero lo apropiado es hacer bien el codigo...

Código (php) [Seleccionar]
$temporal = explode...
if(count($temporal)>....



Alguna idea de porque ocurra esto?

engel lex

has un var dump a tu base64_decode($data) para que veas que hay, como relaciona con explode y list
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

SrTrp