Doc AES_ENCRYPT - https://dev.mysql.com/doc/refman/en/encryption-functions.html#function_aes-encrypt
Doc AES_DECRYPT - https://dev.mysql.com/doc/refman/en/encryption-functions.html#function_aes-decrypt
Per ovviare a questa “mancanza” di Doctrine2 possiamo implementare due procedure “custom” per poter utilizzare queste due funzioni MySQL.
Creiamo una prima classe PHP in un file denominato AesEncryptWithInitVector.php
Ed una seconda classe PHP in un file denominato AesDecryptWithInitVector.php
Successivamente andiamo a registrare queste due classi in Doctrine2 in modo che si possano utilizzare nelle query. Per far ciò basta andare nelle configurazioni di Doctrine2 ed aggiungere nelle string_functions quanto segue:
Terminata la configurazione di Doctrine2 possiamo decidere che tipo di crittografia AES utilizzare andando a specificarlo eseguendo questa query dove decidiamo di utilizzare aes-128-cbc:
SET SESSION block_encryption_mode = 'aes-128-cbc'
Se utlizziamo Zend Framework 2/3 alias Laminas o qualsiasi altro framework PHP è utile definire il tipo di crittografia AES adoperata da Doctrine2 nel bootstrap come in questo esempio dove decidiamo di utilizzare aes-128-cbc:
Scrivi il tuo commento