THotPDF.CryptKeyLength Property

 

THotPDF.CryptKeyLength

THotPDF

 

Till toppen  Föregående  Nästa

Bestämer PDF-filens krypteringsmetod.

 

type

THPDFKeyType = ( k40,  k128,  aes128,  aes256,  aesgcm );

 

Delphi-syntax:

property CryptKeyLength: THPDFKeyType;

 

C++-syntax:

__property THPDFKeyType CryptKeyLength;

 

Beskrivning

Använd CryptKeyLength för att välja standardsäkerhetshanterarens revision och chiffer som används när ActivateProtection är aktiverad.

För AES-lösenordskryptering, sätt EncryptMetadata till falskt innan BeginDoc för att skriva /EncryptMetadata false, lämna XMP /Metadata -strömmar i klartext och använd motsvarande AES-128-nyckelhärledning eller AES-256 /Perms -metadatabitflaggan. Standard är true för kompatibilitet.

 

Värde                Betydelse


k40                        Standardsäkerhetshanterare V=1, R=2, RC4 med 40-bitars nyckel (PDF 1.1+).

k128                        Standardsäkerhetshanterare V=2, R=3, RC4 med 128-bitars nyckel (PDF 1.4+).

aes128                  Standardsäkerhetshanterare V=4, R=4 med crypt filter StdCF (CFM=AESV2). AES-128 i CBC-läge med PKCS#7-utfyllnad och en slumpmässig 16-byte initieringsvektor enligt ISO 32000-1 7.6.2 / 7.4.4.2 (PDF 1.6+). Sedan HotPDF v2.4.0 krypterar detta alternativ strängar och strömmar med en riktig AES-implementation; tidigare byggen emitterade AES-ordlistan men krypterade inte innehållet på riktigt.

aes256                  Standardsäkerhetshanterare V=5 med crypt filter StdCF (CFM=AESV3). AES-256 i CBC-läge med PKCS#7-utfyllnad och en slumpmässig 16-byte initieringsvektor per Adobe Extension Level 3 / ISO 32000-2 7.6.4 (PDF 1.7+, accepterad av Acrobat 9 och senare, Foxit, Chrome och Apple/macOS-visare). Tillgängligt sedan HotPDF v2.17.0. Väljs aes256 höjs utdataversionen till PDF 1.7 när den är lägre, såvida inte StrictVersionLock är satt, i vilket fall en lägre version faller tillbaka till AES-128 (före v2.760.0 föll standardutdata PDF 1.6 tyst tillbaka till AES-128). Standardrevisionen är R=5 med SHA-256-lösenordshashning. Sätt UseAES256R6 till true för att växla till R=6 med ISO 32000-2 algoritm 2.B ”hash dance” (SHA-256 / SHA-384 / SHA-512 + AES-128-mixer); R=6 krävs av Acrobat DC och PDF/A-4-validerare. Tillgängligt sedan HotPDF v2.22.0.

aesgcm              Standardsäkerhetshanterare V=6, R=7 med crypt filter StdCF (CFM=AESV4). AES-256-GCM använder en unik 12-byte initieringsvektor och en 16-byte autentiseringstagg för varje krypterad sträng och ström, med tom autentiserade tilläggsdata, enligt ISO/TS 32003:2023. Detta alternativ kräver PDF 2.0 och emitterar ISO-utvecklartillägget på tilläggsnivå 32003. Tillgängligt sedan HotPDF v2.475.0.

 

Säkerhetshanterare för publik nyckel (ISO 32000-1 7.6.4, ISO 32000-2 7.6.5)

För certifikatsbaserad kryptering (ett dokument, flera mottagare) anropa EnablePubKeyEncryption(seed, KeyType, EncryptMetadata) i stället för att sätta UserPassword / OwnerPassword. Kryptering med publik nyckel stödjer k40, k128, aes128 och aes256 (aes256 höjer utdata till PDF 2.0, och certifikat- eller nyckelöverenskommelsemottagare kräver det); aesgcm är begränsad till den lösenordsbaserade standardsäkerhetshanteraren. Anroparen måste bygga en PKCS#7-envelopedData-blob per mottagare (Windows CryptoAPI, OpenSSL eller pycryptodome) och bifoga varje blob via AddPubKeyRecipient; filkrypteringsnyckeln härleds genom algoritm 9 (SHA-1 av seed sammanfogad med kuvertbinärerna). Tillgängligt sedan HotPDF v2.33.0

 

Kodexempel

HPDF.Version := pdf20;                     // Select PDF 2.0
HPDF.CryptKeyLength := aesgcm;             // Select AES-256-GCM
HPDF.OwnerPassword := 'password';          // Set owner password (required to change security settings)
HPDF.UserPassword := 'user';               // Set user password (required to open the document)
HPDF.ProtectOptions := [prPrint, prPrint12bit]; // Allow full-quality printing only
HPDF.EncryptMetadata := false;             // Keep XMP metadata cleartext
HPDF.ActivateProtection := true;           // Enable PDF security

 

Se även: ActivateProtection, OwnerPassword, ProtectOptions, UserPassword