usar gpg encriptar desencriptar como archivos php pgp gnupg openpgp

gpg - desencriptar md5 php



¿Cifrar archivos usando PGP en PHP? (1)

Quiero usar el cifrado PGP para cifrar archivos CSV, estoy generando a través de un script PHP y luego lo envío al cliente por correo electrónico. El cliente me dará la clave de cifrado, que necesito usar para los archivos de cifrado.

Busqué en Google sobre PGP y descubrí que es bastante buena privacidad, también encontré OpenPGP http://www.openpgp.org/ y GnuPG http://www.gnupg.org/ ¿Cuáles son estos dos tipos de PGP? y cual debo usar?

¿También cómo cifrar un archivo usando PGP en PHP con la clave que mi cliente proporcionará?

He escuchado este término por primera vez, ¿puede alguien ayudarme a entender esto e implementarlo en PHP?


Pregunta 1: Acerca de PGP

  • PGP (Pretty Good Privacy) es un producto y marca registrada de Symantec Corporation (la compraron hace algunos años).
  • OpenPGP es el estándar usado por PGP.
  • GnuPG (Gnu Privacy Guard) es una implementación gratuita y de código abierto de PGP.

Entonces, lo que quieres hacer es cifrar en una clave OpenPGP . La implementación de OpenPGP que usa su cliente para descifrar los datos no es importante para usted. Con PHP, comúnmente se usa GnuPG y hay interfaces integradas.

Pregunta 2: Usando GnuPG en PHP

Use la interfaz GnuPG , que es una extensión que se puede instalar para PHP.

Al principio, importe la clave, donde $keydata es la clave pública blindada ASCII:

<?php $gpg = new gnupg(); $info = $gpg -> import($keydata); print_r($info); ?>

Luego use esta clave para cifrar los datos, esta vez utilizando la huella digital de la clave del cliente:

<?php $gpg = new gnupg(); $gpg -> addencryptkey("8660281B6051D071D94B5B230549F9DC851566DC"); $enc = $gpg -> encrypt("just a test"); echo $enc; ?>

Si desea cifrar archivos, léalos y páselos a encrypt() . Asegúrese de usar al menos identificaciones de clave largas (por ejemplo, DEADBEEFDEADBEEF ), mejores huellas digitales (como en el ejemplo) al hacer referencia a las claves; y nunca utilice identificadores de clave cortos ( DEADBEEF ), ya que son vulnerables a los ataques de colisión .

Este es un ejemplo más completo para hacer ambas cosas agregadas por un usuario en el manual de PHP.