jackprice/doctrine-encrypt

A package for the safe encryption of Doctrine fields

0.1.0 2017-06-13 22:36 UTC

This package is not auto-updated.

Last update: 2024-05-07 16:17:28 UTC


README

Build Status

A package for the safe encryption and decryption of Doctrine fields.

Usage

Register the custom encrypted Doctrine type somewhere in the initialisation of your application.

<?php

\Doctrine\DBAL\Types\Type::addType(
    \DoctrineEncrypt\Types\Encrypted::ENCRYPTED,
    \DoctrineEncrypt\Types\Encrypted::class
);

Set the encryption key.

Important: You are responsible for securing and generating a strong key.

<?php

$encryptor = new \DoctrineEncrypt\Encryptors\AES256Encryptor(sha1('Use a very strong key here'));
\DoctrineEncrypt\Types\Encrypted::setEncryptor($encryptor);

Use the encrypted type in your entities.

<?php

class MyEntity
{
    /**
     * @ORM\Column(type="encrypted") 
     */
    protected $encrypted;
}

TODO

  • Add more documentation
  • Handle unencrypted fields
  • Create a CLI to encrypt fields
  • Allow key rotation