Javascript openssl_加密和加密JS

Javascript openssl_加密和加密JS,javascript,php,pdf,encryption,Javascript,Php,Pdf,Encryption,我试图用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 wind

我试图用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,将其存储在文件夹中并尝试加密,则返回上述错误

谢谢

已编辑

在运行了两个以上的测试之后,我意识到问题出在$mpdf->output(“…”,F)之间;并打开文件进行加密

如果我对创建pdf的行进行注释,则加密函数工作正常,如果我一个接一个地进行注释,则加密文件不工作

输出缓冲区之间似乎存在冲突或类似情况

你知道怎么解决这个问题吗


谢谢

当CryptoJS完全能够生成Base64编码字符串时,为什么要尝试使用
btoa
decryptoString(CryptoJS.enc.Base64)
也要避免UTF-8!PDF是一个二进制文件!