Base de conhecimento
1000 perguntas frequentes, 500 tutoriais e vídeos explicativos. Aqui, você encontra apenas soluções!
Instalar uma alternativa PHP pura
Este guia explica como usar GnuPG / PGP com PHP em um Servidor Cloud Infomaniak, devido à descontinuação da extensão nativa (são preferidas alternativas "PHP puro" ou wrappers modernos).
Introdução
- A extensão do sistema
PHP_GnuPGnão é mais mantida pela comunidade PHP e, portanto, não está mais disponível em ambientes recentes. - Duas alternativas principais em "PHP puro" (instaláveis via Composer) permitem continuar a assinar ou criptografar seus dados com segurança.
Opção 1: Crypt_GPG (Recomendado)
Esta biblioteca funciona como um wrapper: ela se comunica diretamente com o binário gpg instalado no seu Servidor Cloud. Esta é a solução mais eficiente e estável.
Para instalá-lo, conecte-se via SSH e execute este comando na raiz do seu projeto:
# Install the PEAR Crypt_GPG package via Composer
composer require pear/crypt_gpgExemplo de utilização para criptografar uma mensagem (abordagem orientada a objetos):
<?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();
}
Opção 2: OpenPGP.php (Independente)
Esta biblioteca é totalmente escrita em PHP. A sua principal vantagem é que não depende do binário gpg do servidor, garantindo a total portabilidade do seu código entre diferentes ambientes.
# Install the OpenPGP.php library
composer require singpolyma/openpgp-phpExemplo de estrutura básica:
<?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 para esta FAQ: https://faq.infomaniak.com/954
Esta seção de perguntas frequentes foi útil?