jackprice / doctrine-encrypt

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

jackprice/doctrine-encrypt

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

About


Languages

Language:PHP 100.0%