尝试解密文件时,在所有文件(PDF,XLS等)的末尾添加了几个NUL二进制字符,因此它们无法正确打开。如何在解密期间删除NUL? RTRIM似乎对dectryptedbinary数据文件(word doc,xls等)没有任何帮助。
使用rijndael-256加密/解密。
readfile(rtrim($encrypt->filter($_FILES['userfile']['tmp_name'])));
尝试在一行中完成所有工作以提高规模效率。
答案 0 :(得分:4)
使用rtrim($decrypted, "\0");
之类的内容删除解密邮件中的尾随NUL
个字符。由于您使用的是分组密码(AES),因此必须将加密的字符串填充到块长度。
如果文件的末尾可能包含有效的NUL
个字符,则此方法可能会有问题,您需要保留原始邮件长度,以便最后删除附加的填充。
特别参见Padding - Cryptography,填充方法部分。