Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

615
Vistas
PHP convierte MCRYPT_ENCRYPT a OPENSSL_ENCRYPT (encabezado SOAP)

Necesito encriptar algunos campos de encabezado SOAP y actualmente tengo el siguiente código funcionando en un proyecto con la versión PHP 5.6.

 function getBaseEncoded($data, $key) { $size = $this->pkcs5_pad($data, mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_ECB)); $iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_ECB), MCRYPT_RAND); $result = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $size, MCRYPT_MODE_ECB, $iv); return trim(base64_encode($result)); } private function pkcs5_pad($text, $blocksize) { $pad = $blocksize - (strlen($text) % $blocksize); return $text . str_repeat (chr($pad), $pad); }

Lo que pasa es que ahora tengo en mis manos un proyecto similar pero con PHP 7, y la función MCRYPT está obsoleta y necesito cambiarla a OPENSSL_ENCRYPT.

El siguiente código es mi primer intento:

 function getBaseEncoded($data, $key) { $result = openssl_encrypt($data, 'AES-128-ECB', $key, OPENSSL_RAW_DATA | OPENSSL_ZERO_PADDING); return trim(base64_encode($result)); }

Pero ahora recibo un error SOAP con el mensaje

SoapFault => No se pudo conectar al host

y me hizo pensar si el problema está en mi nueva función?

about 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Le faltan algunos datos del vector inicializador.

 $ivsize = openssl_cipher_iv_length('AES-128-ECB'); $iv = openssl_random_pseudo_bytes($ivsize); $ciphertext = openssl_encrypt( $data, 'AES-128-ECB', $key, OPENSSL_RAW_DATA | OPENSSL_ZERO_PADDING, $iv );
about 4 years ago · Santiago Trujillo Denunciar

0

echo encrypt_openssl($data, $key); function encrypt_openssl($msg, $key, $iv = null) { $iv_size = openssl_cipher_iv_length('AES-128-ECB'); if (!$iv) { $iv = openssl_random_pseudo_bytes($iv_size); } $encryptedMessage = openssl_encrypt($msg, 'AES-128-ECB', $key, OPENSSL_RAW_DATA, $iv); return base64_encode($iv . $encryptedMessage); }
about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda