Descriptografar e criptografar usando métodos CallBack no cakephp
Desejo usar os métodos de retorno de chamada para criptografar um valor antes que ele seja armazenado no meu banco de dados e descriptografá-lo antes de mostrá-lo novamente no aplicativo.
Eu usei um dos exemplos fornecidos nodocumentação.
No meucore.php
Eu coloquei o seguinte:
Configure::write('Security.cipherCriptKey','su0HKssPmdbwgK6LdQLqzp0YmyaTI7zO');
No meu modelo, usei dois métodos:
beforeSave()
public function beforeSave($options = array()) {
$value=$this->data['Internship']['encryptedindb'];
$encrypted = Security::encrypt($value, Configure::read('Security.cipherCriptKey'));
$this->data['Internship']['encryptedindb'] = $encrypted;
return true;
}
afterFind()
public function afterFind($results, $primary = false) {
foreach ($results as $key => $val) {
if(isset($val['Internship']['encryptedindb'])){
$results['Internship']['encryptedindb'] = Security::decrypt($val['Internship']['encryptedindb'], Configure::read('Security.cipherCriptKey'));
}
return $results;
}
}
obeforeSave()
parece estar funcionando bem, pois posso ver no meu banco de dados o valor criptografado. No entanto, na minha opinião, e quando eu gostaria de ver o conteúdo do campodescriptografado, ele exibe como um campo vazio. Como se oafterFind()
O método não pode decifrá-lo novamente (ele sempre retorna falso).
Abaixo está uma captura de tela da visualização do meu aplicativo:
E banco de dados com os valores criptografados: