我有一个字符串,我想以加密格式保存到我的数据库中。我正在使用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
的空字段
我的问题是为什么这个空白数据库会发生以及如何修复它。谢谢。
答案 0 :(得分:2)
问题最终是rjindeal函数返回我的数据库无法处理的原始二进制字符串010100100010100101111101010010101
。只需通过bin2hex($encrypted_message)
将结果转换为十六进制代码,数据就会转换为我的数据库可以处理的形式。