CakePHP rijndael cipher在数据库中放入一个空字符串

时间:2014-03-25 20:41:13

标签: php cakephp encryption cakephp-2.3 rijndael

我有一个字符串,我想以加密格式保存到我的数据库中。我正在使用cake提供的安全实用程序,所以这是我用来加密敏感数据的代码:

// get my encryption key
$encrypt_key = Configure::read('Secret.encrypt_key');

// encrpyt this string to be stored in the database
$this->request->data['User']['message'] = Security::rijndael($this->request->data['User']['message'], $encrypt_key, 'encrypt');

// save this user data
$user_saved = $this->User->save( $this->request->data[ 'User' ] );

这看起来像我曾经看过的关于如何执行此操作的指南,但在我的情况下,所有其他字段都将保存,我将获得message的空字段

我的问题是为什么这个空白数据库会发生以及如何修复它。谢谢。

1 个答案:

答案 0 :(得分:2)

问题最终是rjindeal函数返回我的数据库无法处理的原始二进制字符串010100100010100101111101010010101。只需通过bin2hex($encrypted_message)将结果转换为十六进制代码,数据就会转换为我的数据库可以处理的形式。