Chiffrer les fichiers en utilisant PGP en PHP?

je veux utiliser le cryptage PGP pour crypter un fichier CSV, je génère à travers un script PHP et puis envoyer ce fichier au client par e-mail. Le Client me donnera la clé de cryptage, que je dois utiliser pour les fichiers de cryptage.

J'ai googlé à propos de PGP et j'ai trouvé Qu'il est assez bonne intimité, aussi J'ai trouvé OpenPGP http://www.openpgp.org / et GnuPG http://www.gnupg.org / que sont ces deux types de PGP? et que l'on doit - Je l'utiliser?

aussi comment chiffrer un fichier en utilisant PGP en PHP avec la clé que mon client fournira?

j'ai entendu ce terme pour la première fois, est-ce que n'importe qui peut s'il vous plaît aider à comprendre ceci et mettre en œuvre ceci en PHP.

20
demandé sur Prashant 2013-04-12 15:04:42

1 réponses

Question 1: À propos de PGP

  • PGP (Pretty Good Privacy) est un produit et une marque de Commerce de Symantec Corporation (ils l'ont acheté il ya quelques années).
  • OpenPGP est la norme utilisée par PGP.
  • GnuPG (Gnu Privacy Guard) est une implémentation libre et libre de PGP.

alors ce que vous voulez do est chiffré à une clé OpenPGP . Quelle implémentation D'OpenPGP votre client utilise pour décrypter les données n'est pas importante pour vous. Avec PHP, GnuPG est couramment utilisé et il y a des interfaces intégrées.

Question 2: Utilisation de GnuPG en PHP

utilisez interface GnuPG , qui est une extension qui peut être installé pour PHP.

tout d'abord, importer la clé, où $keydata est le Clé publique blindée ASCII:

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

puis utilisez cette clé pour chiffrer les données, Cette fois en utilisant l'empreinte digitale de la clé du client:

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

si vous voulez chiffrer des fichiers, lisez-les et passez-les à encrypt() . Assurez-vous d'utiliser au moins de longues clés D'identification (p. ex. DEADBEEFDEADBEEF ), de meilleures empreintes digitales (comme dans l'exemple) lors de l'utilisation de clés de référence; et n'utilisez jamais de clés D'identification courtes ( DEADBEEF ), car ceux-ci sont vulnérables aux attaques de collision .


Le plus complet exemple pour faire les deux ajouter un utilisateur dans le manuel PHP.

38
répondu Jens Erat 2017-03-17 10:45:55