Wissensdatenbank

1 000 FAQs, 500 Anleitungen und erläuternde Videos. Hier gibt es nur Lösungen!

Eine reine PHP-Alternative installieren

Aktualisierung 01.09.2026

Diese Anleitung erklärt, wie Sie GnuPG / PGP mit PHP auf einem Cloud-Server von Infomaniak verwenden können, da die native Erweiterung veraltet ist (es werden Alternativen in „reinem PHP“ oder moderne Wrapper bevorzugt).

 

Einleitung

  • Die Systemerweiterung PHP_GnuPG wird nicht mehr von der PHP-Community gepflegt und ist daher nicht mehr in neueren Umgebungen verfügbar.
  • Zwei Hauptalternativen in „Pure PHP“ (die über Composer installiert werden können) ermöglichen es Ihnen, Ihre Daten weiterhin sicher zu signieren oder zu verschlüsseln.

 

Option 1: Crypt_GPG (Empfohlen)

Diese Bibliothek fungiert als Wrapper: Sie kommuniziert direkt mit dem auf Ihrem Cloud-Server installierten gpg-Programm. Dies ist die leistungsstärkste und stabilste Lösung.

Um es zu installieren, verbinden Sie sich per SSH und führen Sie diesen Befehl im Stammverzeichnis Ihres Projekts aus:

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

Beispiel für die Verwendung zum Verschlüsseln einer Nachricht (objektorientierter Ansatz):

<?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();
}

 

Option 2: OpenPGP.php (Unabhängig)

Diese Bibliothek ist vollständig in PHP geschrieben. Ihr grösster Vorteil ist, dass sie nicht von der gpg-Binärdatei des Servers abhängt, was die vollständige Portabilität Ihres Codes zwischen verschiedenen Umgebungen gewährleistet.

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

Beispiel für eine grundlegende Struktur:

<?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 zu dieser FAQ: https://faq.infomaniak.com/954


War diese FAQ nützlich?