PHPackages                             carnage/doctrine-encrypted-column - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Database &amp; ORM](/categories/database)
4. /
5. carnage/doctrine-encrypted-column

ActiveLibrary[Database &amp; ORM](/categories/database)

carnage/doctrine-encrypted-column
=================================

Provides a secure way of transparently encrypting data in doctrine ORM

0.2.0(8y ago)36121[3 issues](https://github.com/carnage/doctrine-encrypted-column/issues)MITPHPPHP ^7.0

Since Nov 3Pushed 8y ago2 watchersCompare

[ Source](https://github.com/carnage/doctrine-encrypted-column)[ Packagist](https://packagist.org/packages/carnage/doctrine-encrypted-column)[ RSS](/packages/carnage-doctrine-encrypted-column/feed)WikiDiscussions master Synced today

READMEChangelog (1)Dependencies (6)Versions (4)Used By (0)

\#Doctrine Encryted Column [![Scrutinizer Code Quality](https://camo.githubusercontent.com/13648e34f77109e791ef0df78a0bdc2b6e1e4d0d6ce9e36aad77e17658f33b69/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f6361726e6167652f646f637472696e652d656e637279707465642d636f6c756d6e2f6261646765732f7175616c6974792d73636f72652e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/carnage/doctrine-encrypted-column/?branch=master) [![Code Coverage](https://camo.githubusercontent.com/71305430905b95c03774de075b32c1ddacd408d873c3b46e5d21671ba2b55760/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f6361726e6167652f646f637472696e652d656e637279707465642d636f6c756d6e2f6261646765732f636f7665726167652e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/carnage/doctrine-encrypted-column/?branch=master)

Motivation
==========

[](#motivation)

Currently there are about a dozen encrypted column extensions for doctrine. None of them are very well implemented and are thus insecure (eg using Pop-art mode (ECB) or auto decrypting data on load) most also are tied to a framework making them useless unless you use that framework.

This lib intends to resolve these two issues and provide an obvious choice library for anyone needing to encrypt data they are storing through doctrine ORM.

Every endeavour will be taken to ensure that future versions of this library will be able to read data encrypted with older versions and re-encrypt to take advantage of any security fixes or improvements. In the event that this isn't possible automatically, guidance will be provided to allow you to migrate your data manually, to ensure that this process is as smooth as possible, we suggest making a note of the versions of lib sodium, halite and this library that you initially install.

Features
========

[](#features)

- Encrypted column type for doctrine
- Functionally similar to object column type
- Transparent to end user
- Uses proxies to avoid decrypting data that isn't needed
- Best in class cryptography (LibSodium)

Pull requests
=============

[](#pull-requests)

I will accept pull requests for the following:

- New serialisation support (JMS is desirable here)
- Support for doctrine ODM
- Support for different crypto backends which use a good implementation (eg Zend crypt, defuse, easyrsa)
- bug fixes

I will not accept:

- Integration into &lt;&lt; your favorite framework &gt;&gt; create a lib for that which uses this and PR a link for the readme
- Support for poor crypto implementations (eg anything using mcrypt)

Security issues
===============

[](#security-issues)

You can use my keys from keybase  to contact me regarding any security issues.

###  Health Score

26

—

LowBetter than 41% of packages

Maintenance18

Infrequent updates — may be unmaintained

Popularity16

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity50

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~330 days

Total

2

Last Release

3196d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/aee2ff8ab8a5dc8e25d2d59d9402f0395ab411fa46d99c25991857bcafba0639?d=identicon)[carnage](/maintainers/carnage)

---

Top Contributors

[![carnage](https://avatars.githubusercontent.com/u/846596?v=4)](https://github.com/carnage "carnage (31 commits)")

---

Tags

doctrineencrypted-data

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/carnage-doctrine-encrypted-column/health.svg)

```
[![Health](https://phpackages.com/badges/carnage-doctrine-encrypted-column/health.svg)](https://phpackages.com/packages/carnage-doctrine-encrypted-column)
```

###  Alternatives

[kimai/kimai

Kimai - Time Tracking

4.8k8.7k1](/packages/kimai-kimai)[sulu/sulu

Core framework that implements the functionality of the Sulu content management system

1.3k1.4M196](/packages/sulu-sulu)[rcsofttech/audit-trail-bundle

Enterprise-grade, high-performance Symfony audit trail bundle. Automatically track Doctrine entity changes with split-phase architecture, multiple transports (HTTP, Queue, Doctrine), and sensitive data masking.

1175.2k](/packages/rcsofttech-audit-trail-bundle)[civicrm/civicrm-core

Open source constituent relationship management for non-profits, NGOs and advocacy organizations.

751284.3k37](/packages/civicrm-civicrm-core)[concrete5/core

Concrete – an open source content management system.

20163.8k49](/packages/concrete5-core)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
