Download the PHP package devuri/encryption without Composer
On this page you can find all versions of the php package devuri/encryption. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download devuri/encryption
More information about devuri/encryption
Files in devuri/encryption
Package encryption
Short Description A Composer package for handling encryption and decryption operations.
License MIT
Informations about the package encryption
Encryption Package
The Encryption package is a simple Composer package that provides functionality for encrypting and decrypting data using the Defuse PHP encryption library or encrypting and decrypting data using OpenSSL. This package simplifies the process of handling encryption keys and allows you to perform encryption and decryption operations on files and data with ease.
Requirements
- PHP 7.4 or higher.
- OpenSSL PHP Extension enabled.
Installation
To use this package in your PHP application, you need to have Composer installed. Once you have Composer set up, run the following command to add the package to your project:
Usage
Encryption Key Generation
To encrypt and decrypt data using the library, you need to generate an encryption key. The EncryptionKey class provides a simple way to generate a new random encryption key in ASCII format:
Ensure you keep the generated encryption key secure and protected, as it is essential for encrypting and decrypting sensitive data.
Setting up Encryption
To use the Encryption package, you first need to set up the Encryption class by providing the necessary parameters:
Note: The
$filesystemparameter is optional. Passnullif you don't need theencrypt_envfile()method. You can also provide your own implementation ofFilesystemInterface.
Encrypting and Decrypting Files
You can use the encrypt_file() and decrypt_file() methods to encrypt and decrypt files:
Encrypting Data
You can use the encrypt() method to encrypt data, such as sensitive information:
Decrypting Data
To decrypt encrypted data, use the decrypt() method:
Encrypting .env File
The package provides a method to encrypt the contents of a .env file:
The encrypted contents will be saved in a file named .env.encrypted.
Key Management
The Encryption class expects the secret key file to be stored in ASCII format. It retrieves the encryption key from the secret key file specified during initialization. Make sure to keep the secret key file secure and protected.
If you have a constant WEBAPP_ENCRYPTION_KEY defined, the class will use that as the encryption key. Otherwise, it will look for the secret key file in the provided directory with the default filename identifier 'secret'. The key file should be named as '.secret.txt' by default unless you specify a different key filename identifier during initialization.
OpenSSLEncrypt
The OpenSSLEncrypt class, provides a simple interface for encrypting and decrypting data using OpenSSL. It supports various cipher algorithms and output formats, such as base64 and hex.
Usage
If you don't specify a cipher, AES-128-CBC is used by default.
Encrypting Data
Decrypting Data
Methods
__construct(string $key, string $cipher = 'AES-128-CBC'): Constructor to initialize the encryption key and cipher algorithm. ThrowsInvalidArgumentExceptionif an unsupported cipher is provided.encrypt(string $data, string $outputFormat = 'base64'): Encrypts the provided data and returns it in the specified format. ThrowsRuntimeExceptionif encryption fails.decrypt(string $data, string $inputFormat = 'base64'): Decrypts the provided data assuming it's in the specified format. ThrowsRuntimeExceptionif decryption fails or input format is invalid.
Notes
- It is crucial to use a secure and unique key for encryption.
- Cipher names are case-insensitive (e.g.,
AES-128-CBCandaes-128-cbcare both valid). - The choice of cipher algorithm can be modified based on your requirements. Use
openssl_get_cipher_methods()to list available ciphers. - The class automatically handles format conversions for input and output.
License
This package is open-source software licensed under the MIT License.
Acknowledgments
The Encryption package utilizes the Defuse PHP encryption library for encryption and decryption operations.
For more information on how to use the Defuse PHP encryption library, please refer to its documentation.
Note: Replace the ellipsis (...) in the usage examples with actual data or file paths relevant to your application. Always handle exceptions appropriately when performing encryption and decryption operations.
All versions of encryption with dependencies
defuse/php-encryption Version ^v2.0
symfony/filesystem Version 5.4.38