Я использую следующий код для шифрования некоторой строки:Хранение зашифрованных данных в базе данных с помощью Security :: Cipher
$value = 'somevalue';
$key = Configure::read('Security.salt');
$encrypted = Security::cipher($value,$key);
$decrypted = Security::cipher($encrypted,$key);
Он отлично работает, он шифрует/расшифровывает правильно. Но я не могу сохранить зашифрованное значение в базе данных - я установил значение поля encrypted_data в $encrypted
, а после save()
ничего в этом поле в базе данных нет. Когда я меняю $ зашифрованный на, например, на «string», он сохраняет строку «правильно» до 'encrypted_data'
.
Таким образом, проблема может заключаться в том, что зашифрованная строка содержит некоторые странные символы, которые база данных не принимает - как я могу ее исправить? (Использование базы данных mysql с utf-8)
Каков тип и длина поля 'encrypted_data' в db –
Не могли бы вы показать нам 'var_dump ($ encrypted);'? – kapa
var_dump = string 'đĚŇ \' (length = 6), тип поля - varchar (50) – user606521