es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Por qué existe openssl_public_decrypt en PHP? ¿No se supone que la clave pública debe ser solo para cifrado?

Me disculpo de antemano por mi ignorancia.

Estoy experimentando con la criptografía de clave pública tratando de aprender sobre RSA.

Mi comprensión de cada fuente que leí es que hay dos claves:
1) La clave pública. Cualquiera puede usar esta para cifrar datos, que solo pueden ser descifrados por la clave privada.
2) La clave privada. Esta puede cifrar o descifrar datos.

Según entiendo, la clave pública es pública, por lo que cualquiera podría conocerla, mientras que la clave privada se pretende que sea secreta. Según lo entiendo, una razón principal para tener una clave pública y privada es para que los datos puedan ser cifrados con la clave pública y luego almacenados o enviados al destinatario a través de un entorno inseguro. Queremos asegurarnos de que un adversario que tenga los datos cifrados / texto cifrado y la clave pública no pueda obtener factiblemente los datos originales.

Tiene total sentido para mí que PHP tenga opensslpublicencrypt, opensslprivateencrypt y opensslprivatedecrypt. opensslprivateencrypt, por ejemplo, “cifra datos con private_key privado”.

Sin embargo, en PHP también hay una función “opensslpublicdecrypt” que específicamente dice que “descifra datos que fueron previamente cifrados a través de opensslprivateencrypt()” y “Descifra datos con clave pública”.

Si hay una función capaz de descifrar usando la clave pública y la clave pública es, bueno, pública, ¿entonces cuál es el punto de cifrar esos datos en absoluto?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    ¡Excelente pregunta! El propósito de cifrar datos con la clave pública es garantizar la confidencialidad de los datos mientras están en tránsito o en reposo. Cuando los datos están cifrados con la clave pública, solo se pueden descifrar con la clave privada. Esto significa que cualquier tercero que intercepte los datos cifrados no podrá leerlos sin la clave privada.

    La función openssl_public_decrypt() se utiliza para descifrar datos que fueron previamente cifrados con openssl_private_encrypt(). Esta función se utiliza para recuperar el mensaje de texto original después de que se haya cifrado para su transmisión segura.

    Entonces, en resumen, la clave pública se utiliza para cifrar los datos para garantizar su confidencialidad mientras están en tránsito o en reposo. La clave privada se utiliza para descifrar los datos cifrados. La función openssl_public_decrypt() se utiliza para recuperar el mensaje de texto sin formato después de que se haya cifrado para su transmisión segura.

Comments are closed.