Base di conoscenze
1 000 FAQ, 500 tutorial e video esplicativi. Qui ci sono delle soluzioni!
Installare un'alternativa PHP nativa
Questa guida spiega come utilizzare GnuPG / PGP con PHP su un Server Cloud Infomaniak, in seguito all'obsolescenza dell'estensione nativa (si privilegiano alternative "PHP puro" o wrapper moderni).
Introduzione
- L'estensione di sistema
PHP_GnuPGnon è più supportata dalla comunità PHP e quindi non è più disponibile negli ambienti più recenti. - Esistono due alternative principali in "Pure PHP" (installabili tramite Composer) che consentono di continuare a firmare o crittografare i dati in modo sicuro.
Opzione 1: Crypt_GPG (consigliata)
Questa libreria funge da wrapper: comunica direttamente con il binario gpg installato sul tuo Server Cloud. È la soluzione più performante e stabile.
Per installarlo, connettetevi tramite SSH ed eseguite questo comando nella directory principale del vostro progetto:
# Install the PEAR Crypt_GPG package via Composer
composer require pear/crypt_gpgEsempio di utilizzo per crittografare un messaggio (approccio orientato agli oggetti):
<?php
require_once 'vendor/autoload.php';
try {
// Initialize the GPG object
$gpg = new Crypt_GPG();
// Set the recipient email (must match a public key already imported on the server)
$gpg->addEncryptKey('contact@example.com');
$message = "This is a secret message.";
// Encrypt the data
$enveloppe = $gpg->encrypt($message);
echo $enveloppe;
} catch (Exception $e) {
// Handle potential encryption errors
echo "Error: " . $e->getMessage();
}
Opzione 2: OpenPGP.php (Indipendente)
Questa libreria è interamente scritta in PHP. Il suo vantaggio principale è che non dipende dal binario gpg del server, garantendo la massima portabilità del codice tra diversi ambienti.
# Install the OpenPGP.php library
composer require singpolyma/openpgp-phpEsempio di struttura di base:
<?php
require_once 'vendor/autoload.php';
// Use the library classes to handle OpenPGP packets
// directly in PHP without system calls to the GPG binary.
// Example: $msg = OpenPGP_Message::parse(OpenPGP::unarmor($data));Link a questa FAQ: https://faq.infomaniak.com/954
Questa FAQ è stata utile?