首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP加密失败

PHP加密失败
EN

Stack Overflow用户
提问于 2017-11-27 01:37:17
回答 1查看 125关注 0票数 0

我尝试过多种解决方案来使上载文件上的XOR编码工作,但总是失败。问题基本上是,未加密的文件很好地上传到mysql数据库:

代码语言:javascript
复制
$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。

代码语言:javascript
复制
$encrypted .= chr( ord( $content[$i] ) ^ ord( $key[$i % strlen ($key)] ) );

“您的SQL语法有错误;请检查与MySQL服务器版本对应的手册,以获得在第12行使用”??ѿG?a?og??og?o3y q:??eH}?,Y?Z>?m?]?y%?{?$?‘的正确语法。“

谢谢你提前提供帮助

编辑:添加

代码语言:javascript
复制
$encrypted = addslashes($encrypted);

让代码正常工作。该文件已上载到数据库中,但其大小已增加,因此不可解码。

EN

回答 1

Stack Overflow用户

发布于 2017-11-27 04:14:46

能够通过使用准备好的语句来修复所有的问题。addslashes函数与加密文件混在一起。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47502866

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档