Base di conoscenze

1 000 FAQ, 500 tutorial e video esplicativi. Qui ci sono delle soluzioni!

Installare un'alternativa PHP pura

Questa guida spiega come utilizzare GnuPG / PGP con PHP su un Server Cloud Infomaniak, a seguito dell'obsolescenza dell'estensione nativa (vengono privilegiate alternative "PHP puro" o wrapper moderni).

 

Premessa

  • L'estensione di sistema PHP_GnuPG non è più mantenuta dalla comunità PHP e quindi non è più disponibile negli ambienti recenti.
  • Due principali alternative in "Pure PHP" (installabili tramite Composer) permettono di continuare a firmare o crittografare i dati in tutta sicurezza.
  • In caso di necessità, partner locali e referenziati da Infomaniak possono occuparsi di queste pratiche : lanciate un appello d'offerta gratuito ; si occupano di tutto, liberandovi dai dettagli tecnici — scoprite anche il ruolo dell'hosting provider.

 

Opzione 1: Crypt_GPG (Consigliato)

Questa libreria funziona come un wrapper : comunica direttamente con il binario gpg installato sul vostro Server Cloud. È la soluzione più performante e stabile.

Per installarla, connettersi in SSH ed eseguire questo comando alla radice del progetto:

# Install the PEAR Crypt_GPG package via Composer
composer require pear/crypt_gpg

Esempio 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 principale vantaggio è che non dipende dal binario gpg del server, garantendo una portabilità totale del codice tra diversi ambienti.

# Install the OpenPGP.php library
composer require singpolyma/openpgp-php

Esempio 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));

Questa FAQ è stata utile?