Crypter les fichiers à l'aide de PGP en PHP?
Je veux utiliser un chiffrement PGP pour crypter un fichier CSV fichiers, je suis de la génération par le biais d'un script PHP et envoyer ensuite le fichier client par e-mail. Client de me donner la clé de chiffrement, qui je dois l'utiliser pour le chiffrement des fichiers.
J'ai Googlé à propos de PGP et trouve qu'il est Assez Bon de Confidentialité, j'ai aussi trouvé OpenPGP http://www.openpgp.org/ et GnuPG http://www.gnupg.org/ Ce sont ces deux types de PGP? et qui dois-je utiliser?
Aussi comment faire pour crypter les fichiers à l'aide de PGP en PHP avec la clé que mon client fournira?
J'ai entendu ce terme pour la première fois, quelqu'un peut s'il vous plaît aider dans la compréhension de ce et la mise en œuvre de ce en PHP.
Vous devez vous connecter pour publier un commentaire.
Question 1: a Propos de PGP
Donc ce que vous voulez faire est de chiffrer pour un OpenPGP clé. La mise en œuvre de la norme OpenPGP votre client utilise pour déchiffrer les données n'est pas important pour vous. Avec PHP, communément GnuPG est utilisé, et il existe des interfaces intégrées.
Question 2: Utilisation de GnuPG en PHP
Utiliser le GnuPG interface, qui est une extension qui peut être installé pour PHP.
Au premier abord, l'importation de la clé, où
$keydata
est de l'ASCII blindés clé publique:Ensuite utiliser cette clé pour chiffrer les données, en utilisant cette fois le client key fingerprint:
Si vous souhaitez crypter des fichiers, de les lire et de les transmettre à
encrypt()
. Assurez-vous d'utiliser au moins le long de l'Id de clé (par exemple.DEADBEEFDEADBEEF
), l'amélioration des empreintes digitales (comme dans l'exemple) lors de la référence à clés; et ne jamais utiliser les touches de raccourci Id (DEADBEEF
), comme ceux qui sont vulnérables à des attaques par collision.Le plus exemple complet pour faire les deux ajouté par un utilisateur dans le manuel PHP.
gpg –fingerprint {user_id}
.FALSE
), mais une chaîne vide ne devrait jamais se produire.Va laisser une réponse ici que de nombreux exemples à travers le net pour PHP GnuPG sont très bare bones et j'espère que cela sauve quelqu'un une certaine frustration.
Fondamentalement, il reflète la manière dont les GnuPG outil de ligne de commande fonctionne. Vous avez besoin d'importer une clé si elle n'est pas déjà dans gpg porte-clés vous devez alors sélectionner le destinataire de la clé à utiliser pour le chiffrement/déchiffrement.
Si vous saviez ce que j'ai fait et passé dans la clé comme le destinataire ça ne fonctionne pas!
Il n'est pas clair ce que ce champ est dans le Manuel de GPG ou La documentation PHP qui se rapporte à ce domaine "empreinte digitale". Vérifier gpg de l'anneau de clé pour votre fraîchement importé clé avec:
Ceci affichera quelque chose comme ceci:
Cela vous donnera l'UID et sur la deuxième ligne de l'empreinte associée à chaque clé. Aussi loin que je peux dire, vous pouvez utiliser le UIDE et les empreintes digitales en tant que destinataire.
De sorte que votre code PHP pour chiffrer pourrait ressembler à ceci:
Puis du destinataire code ressemblera à ceci:
Note les empreintes digitales sont les mêmes pour les deux du destinataire de clés publique et privée.
Il y a aussi un problème connu avec adddecryptkey ne pas prendre un mot de passe! Vous devez soit supprimer le mot de passe ou modifier votre version de GnuPG.