
Criptografia Simples em PHP.
composer require defuse/php-encryption
Esta é uma biblioteca para criptografar dados com uma chave ou senha em PHP. Ela requer PHP 5.6 ou mais recente e OpenSSL 1.0.1 ou mais recente. Recomendamos usar uma versão do PHP que ainda tenha suporte de segurança, o que, no momento em que este texto foi escrito, significa PHP 8.0 ou posterior. Usar esta biblioteca com uma versão sem suporte do PHP pode levar a vulnerabilidades de segurança.
A versão atual do php-encryption é a v2.4.0. Espera-se que esta biblioteca permaneça estável e seja mantida por seus autores com correções de segurança e bugs até pelo menos 1º de janeiro de 2024.
A biblioteca é um esforço conjunto de Taylor Hornby e Scott Arciszewski, além de diversos colaboradores de código aberto.
O que diferencia esta biblioteca de outras bibliotecas de criptografia para PHP é, primeiramente, que ela é segura. Os autores costumavam encontrar código de criptografia PHP inseguro diariamente, então criaram esta biblioteca para trazer mais segurança ao ecossistema. Em segundo lugar, esta biblioteca é "difícil de usar incorretamente". Assim como libsodium, sua API foi projetada para ser fácil de usar de forma segura e difícil de usar de forma insegura.
Esta biblioteca não requer dependências especiais, exceto PHP 5.6 ou mais recente com as extensões OpenSSL (versão 1.0.1 ou posterior) habilitadas (este é o padrão). Ela usa random_compat, que está incluído nesta biblioteca para que seus usuários não precisem seguir nenhum procedimento especial de instalação.
Comece com o Tutorial. Você pode encontrar instruções para obter o código desta biblioteca de forma segura na documentação Instalando e Verificando.
Depois de ler o tutorial e obter o código, consulte a documentação formal de cada uma das classes que esta biblioteca fornece:
Se você encontrar dificuldades, veja as respostas nas Perguntas Frequentes (FAQ). As correções para os problemas mais comumente relatados são explicadas lá.
Se você é criptógrafo e quer entender os detalhes mais técnicos de como esta biblioteca funciona, consulte a documentação Detalhes de Criptografia.
Se você tem interesse em contribuir com esta biblioteca, veja a Documentação Interna para Desenvolvedores.
Esta biblioteca é destinada a softwares PHP do lado do servidor que precisam criptografar dados em repouso. Se você está desenvolvendo software que precisa criptografar do lado do cliente, ou construindo um sistema que exija suporte a criptografia/descriptografia entre plataformas, recomendamos fortemente usar libsodium em vez dela.
Se a documentação não for suficiente para você entender como usar esta biblioteca, você pode consultar um projeto de exemplo que a utiliza:
Este código não foi submetido a uma auditoria de segurança formal e paga. No entanto, recebeu muitas revisões de membros da comunidade de segurança PHP, e os autores têm experiência com criptografia. Com toda probabilidade, você está mais seguro usando esta biblioteca do que quase qualquer outra biblioteca de criptografia para PHP.
Se você usa esta biblioteca como parte do seu negócio e gostaria de ajudar a financiar uma auditoria formal, entre em contato com Taylor Hornby.
A chave pública GnuPG usada para assinar os lançamentos atuais e novos está disponível em dist/signingkey-new.asc. Sua impressão digital é:
6DD6 E677 0281 5846 FC85 25A3 DD2E 507F 7BDB 1669
Você pode verificá-la na página de contato e no twitter de Taylor Hornby.
Lançamentos mais antigos foram assinados com uma chave (agora expirada) disponível em dist/signingkey-old.asc. A impressão digital da chave antiga é:
2FA6 1D8D 99B9 2658 6BAC 3D53 385E E055 A129 1538
A impressão digital da chave antiga pode ser verificada na página de contato e no twitter de Taylor Hornby.
Uma assinatura desta nova chave feita pela chave antiga está disponível em dist/signingkey-new.asc.sig.