new PdfCrypto()
Classe que disponibiliza métodos estáticos para criptografia e descriptografia de documentos PDF.
A criptografia é realizada utilizando AES-256 (PDF 2.0 / ISO 32000-2, revisão R=6, com normalização SASLprep UTF-8 para senhas). Na descriptografia, são suportados documentos criptografados com os algoritmos padrão do formato PDF (RC4 40/128 bits, AES-128 e AES-256).
Não construa instâncias de PdfCrypto. Ao invés, utilize os métodos estáticos desta classe.
Methods
-
<static> decryptBytes(content, password)
-
Descriptografa o conteúdo de um PDF criptografado em memória e retorna os bytes do PDF descriptografado. Aceita tanto a senha de usuário (
userPassword) quanto a senha de proprietário (ownerPassword).Esta função trata as strings como se fossem uma sequência de bytes no formato conhecido por "Binary String", onde cada caractere da string representa um byte do conteúdo binário.
Parameters:
Name Type Description contentUint8Array | ArrayBuffer | string Conteúdo binário do documento PDF criptografado.
passwordstring Senha de usuário ou de proprietário do documento PDF.
Returns:
Conteúdo binário do documento PDF descriptografado.
- Type
- Uint8Array
Example
const PdfCrypto = require('@nginstack/engine/lib/pdf/PdfCrypto.js'); const decryptedBytes = PdfCrypto.decryptBytes(encryptedBytes, 'minha-senha'); -
<static> decryptFile(inputPath, outputPath, password)
-
Descriptografa um arquivo PDF criptografado em disco e grava o documento descriptografado no caminho de destino. Aceita tanto a senha de usuário (
userPassword) quanto a senha de proprietário (ownerPassword).Parameters:
Name Type Description inputPathstring Caminho do arquivo PDF criptografado de entrada.
outputPathstring Caminho onde o arquivo PDF descriptografado será gravado.
passwordstring Senha de usuário ou de proprietário do documento PDF.
Example
const PdfCrypto = require('@nginstack/engine/lib/pdf/PdfCrypto.js'); PdfCrypto.decryptFile('protegido.pdf', 'desbloqueado.pdf', 'minha-senha'); -
<static> encryptBytes(content, passwordOrOptions)
-
Criptografa o conteúdo de um PDF em memória e retorna os bytes do PDF criptografado.
Esta função trata as strings como se fossem uma sequência de bytes no formato conhecido por "Binary String", onde cada caractere da string representa um byte do conteúdo binário.
Parameters:
Name Type Description contentUint8Array | ArrayBuffer | string Conteúdo binário do documento PDF.
passwordOrOptionsstring | PdfEncryptOptions Senha de usuário ou objeto com as opções de criptografia.
Returns:
Conteúdo binário do documento PDF criptografado.
- Type
- Uint8Array
Example
const PdfCrypto = require('@nginstack/engine/lib/pdf/PdfCrypto.js'); const virtualFS = require('@nginstack/engine/context/virtualFS.js'); const pdfBytes = virtualFS.getFileContent(pdfFileKey); const encryptedBytes = PdfCrypto.encryptBytes(pdfBytes, 'minha-senha'); -
<static> encryptFile(inputPath, outputPath, passwordOrOptions)
-
Criptografa um arquivo PDF em disco e grava o documento criptografado no caminho de destino.
Parameters:
Name Type Description inputPathstring Caminho do arquivo PDF de entrada.
outputPathstring Caminho onde o arquivo PDF criptografado será gravado.
passwordOrOptionsstring | PdfEncryptOptions Senha de usuário ou objeto com as opções de criptografia.
Examples
const PdfCrypto = require('@nginstack/engine/lib/pdf/PdfCrypto.js'); PdfCrypto.encryptFile('entrada.pdf', 'saida.pdf', 'minha-senha');const PdfCrypto = require('@nginstack/engine/lib/pdf/PdfCrypto.js'); PdfCrypto.encryptFile('entrada.pdf', 'saida.pdf', { userPassword: 'senha-leitura', ownerPassword: 'senha-proprietario', permissions: { printing: true, modifying: false, copying: false } }); -
<static> isEncryptedBytes(content)
-
Verifica se o conteúdo de um PDF em memória está criptografado.
Esta função trata as strings como se fossem uma sequência de bytes no formato conhecido por "Binary String", onde cada caractere da string representa um byte do conteúdo binário.
Parameters:
Name Type Description contentUint8Array | ArrayBuffer | string Conteúdo binário do documento PDF.
Returns:
truese o documento PDF estiver criptografado;falsecaso contrário.- Type
- boolean
Example
const PdfCrypto = require('@nginstack/engine/lib/pdf/PdfCrypto.js'); if (PdfCrypto.isEncryptedBytes(pdfBytes)) { pdfBytes = PdfCrypto.decryptBytes(pdfBytes, 'minha-senha'); } -
<static> isEncryptedFile(inputPath)
-
Verifica se um arquivo PDF em disco está criptografado.
Parameters:
Name Type Description inputPathstring Caminho do arquivo PDF.
Returns:
truese o documento PDF estiver criptografado;falsecaso contrário.- Type
- boolean
Example
const PdfCrypto = require('@nginstack/engine/lib/pdf/PdfCrypto.js'); if (PdfCrypto.isEncryptedFile('documento.pdf')) { PdfCrypto.decryptFile('documento.pdf', 'desbloqueado.pdf', 'minha-senha'); }