manojx/encrypter-bundle
manojx/encrypter-bundle is a lightweight encryption wrapper for Laravel and PHP applications, bundling encrypt/decrypt helpers and a simple service for protecting sensitive strings consistently across projects.
openssl_encrypt/openssl_decrypt using AES-256-CBC. The decision it actually informs is "do we add a dependency to do something our framework already ships?" For Laravel the answer is almost always no — the Crypt facade / Illuminate\Encryption\Encrypter already provides AES-256-CBC with HMAC authentication and key rotation via APP_PREVIOUS_KEYS. For Symfony, sodium/Seal and defuse/php-encryption are the maintained, audited options.NOASSERTION license file, and one release (2024-10-05), this fails a standard third-party risk gate. It supports a "build/use-native, don't buy" recommendation rather than a feature bet.Consider it only under narrow conditions:
Look elsewhere — decisively — when any of the following hold:
Crypt::encryptString() / the encrypted Eloquent cast. Zero new dependencies, authenticated, key-rotation support, battle-tested.libsodium.Treat it as a code snippet to learn from, not a library to depend on.
Bottom line: do not adopt manojx/encrypter-bundle as a production dependency; use the framework's built-in encryption instead.
For executives: we evaluated a small open-source package for AES-256 encryption and are recommending against it. It duplicates functionality Laravel already provides natively (and Symfony provides through maintained alternatives), it has no community adoption or dependents, an unclear license, and a single maintainer with one release — all of which create abandonment and legal risk with no offsetting benefit. Proceeding with the framework-native path costs us roughly the same engineering effort, removes a dependency from our supply chain, and gives us authenticated encryption and key rotation for free. No roadmap change; this is a "keep the default" decision.
For engineering: the wrapper exposes openssl_encrypt/openssl_decrypt with AES-256-CBC and does not perform encrypt-then-MAC, so ciphertext is malleable unless we add an HMAC ourselves. Laravel's Encrypter already does CBC + HMAC + APP_PREVIOUS_KEYS rotation, and its encrypted cast makes column encryption a one-line change. Recommendation: standardize on Crypt for Laravel services, sodium_crypto_secretbox or defuse/php-encryption for Symfony, and push key custody to KMS/Vault. If we need this package's ergonomics, we can port ~20 lines internally and own them outright. The real work item is key management and backfilling existing plaintext columns, not the encrypt call — let's size that as its own ticket.
How can I help you explore Laravel packages today?