我试图用PHP加密文件并在JS中解密,使用CryptoJS作为库来解密。
要加密的代码:
$e = openssl_encrypt(mb_convert_encoding($data, "UTF-8"), $method, hex2bin($key), 0, hex2bin($iv));
$fp = fopen($destination, 'w')
$write = fwrite($fp, bin2hex( base64_decode( $e )))
在客户端,我使用以下代码生成pdf
window.open("data:application/pdf;base64," + btoa(decrypted.toString(CryptoJS.enc.Utf8)),"Testing");
当它尝试生成pdf时,返回以下错误:
InvalidCharacterError: String contains an invalid character
...n("data:application/pdf;base64," + btoa(decrypted.toString(CryptoJS.enc.Utf8)),"...
初始PDF文档是使用MPDF库生成的,但如果我使用表单上传此pdf,效果很好,如果我生成pdf,存储在文件夹中并尝试加密,则返回上述错误。
由于
EDITED
经过几次测试后,我发现问题出在$ mpdf->输出之间(" ..",F);并打开文件进行加密。
如果我评论我创建pdf的行,加密功能运行良好,如果我一个接一个地执行,加密文件就不起作用。
似乎在输出缓冲区或类似的东西之间存在冲突。
知道如何解决这个问题吗?
由于