Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

613
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda