如何确定PDF是否是加密的javascript客户端



需要确定用户上传的pdf是否在不使用外部库的情况下受到密码保护。 到目前为止得到了这个 POC。

有人知道这可能不起作用的情况吗?

<input type='file' onchange='openFile(event)'><br>
<script>
var openFile = function (event) {
var input = event.target;
var reader = new FileReader();
reader.onload = function (event) {
console.clear();
var contents = event.target.result;
if (contents.indexOf('/Encrypt') !== -1) {
console.log("Is encrypted");
} else {
console.log("Not encrypted");
}
console.log("File contents: " + contents);
};
reader.onerror = function (event) {
console.error("File could not be read! Code "  +event.target.error.code);
};
reader.readAsText(input.files[0]);
};
</script>

您可以使用以下代码来查找 PDF 是否已加密

const reader = new FileReader();
reader.readAsArrayBuffer(file);
reader.onload = function () {
var files = new Blob([reader.result], {type: 'application/pdf'});
files.text().then(x=> {
console.log("isEncrypted", x.includes("Encrypt"))
console.log("isEncrypted", x.substring(x.lastIndexOf("<<"), x.lastIndexOf(">>")).includes("/Encrypt"));
console.log(file.name);
});

相关内容

最新更新