PHP XOR шифрование не удается

Я пробовал несколько решений для создания XOR-кодировки для загруженного файла, но он всегда терпит неудачу. проблема в основном в том, что незашифрованный файл прекрасно загружается в базу данных mysql:

$fp      = fopen($tempPath, 'r');
$content = fread($fp, filesize($tempPath));
$content = addslashes($content);
fclose($fp);

$encrypted = "";
$key = "123456";

for($i = 0; $i < strlen ($content); $i++)
{
$encrypted = $encrypted . chr( ord( $content[$i] ) );
}

$sql = "INSERT INTO
doc_files (
id,
filedata,
filename,
cryptdata,
beschreibung,
category,
filetype)
VALUES (
'$new_guid',
'$encrypted',
'$title',
'$key',
null,
'$cat',
'$filetype'
);";

но при изменении только строки, кодирующей файл (добавление XOR), весь сценарий завершается с ошибкой mysql. Формат поля mysql — longblob.

$encrypted .= chr( ord( $content[$i] ) ^ ord( $key[$i % strlen ($key)] ) );

«У вас есть ошибка в вашем синтаксисе SQL; проверьте руководство, которое
соответствует версии вашего сервера MySQL для правильного использования синтаксиса
около ‘?? ѿG? a ???? og ?? 3O ???? o3y q: ?? eH} ?????., Y? Z>? m?]? Y%? | {? $? ‘
на линии 12 «

Спасибо за любую помощь заранее

РЕДАКТИРОВАТЬ: добавление

$encrypted = addslashes($encrypted);

заставляет код работать. Файл загружается в базу данных, но его размер увеличился и поэтому не может быть декодирован.

0

Решение

удалось исправить все, используя подготовленные заявления. функция addlashes перепуталась с зашифрованным файлом.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]