THotPDF.CryptKeyLength Property

 

THotPDF.CryptKeyLength

THotPDF

 

Atas  Sebelumnya  Berikutnya

Menentukan metode enkripsi file PDF

 

type

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

 

Delphi syntax:

property CryptKeyLength: THPDFKeyType;

 

C++ syntax:

__property THPDFKeyType CryptKeyLength;

 

Deskripsi

Gunakan CryptKeyLength untuk memilih revisi standard security handler dan cipher yang dipakai saat ActivateProtection is enabled.

 

Nilai                Arti


k40                        Standard security handler V=1, R=2, RC4 dengan kunci 40-bit (PDF 1.1+)

k128                        Standard security handler V=2, R=3, RC4 dengan kunci 128-bit (PDF 1.4+)

aes128                  Standard security handler V=4, R=4 dengan crypt filter StdCF (CFM=AESV2). AES-128 dalam mode CBC dengan padding PKCS#7 dan vektor inisialisasi acak 16-byte menurut ISO 32000-1 7.6.2 / 7.4.4.2 (PDF 1.6+). Sejak HotPDF v2.4.0 opsi ini mengenkripsi string dan stream dengan implementasi AES nyata; build sebelumnya hanya menerbitkan dictionary AES tetapi tidak benar-benar mengenkripsi konten

aes256                  Standard security handler V=5 dengan crypt filter StdCF (CFM=AESV3). AES-256 dalam mode CBC dengan padding PKCS#7 dan vektor inisialisasi acak 16-byte menurut Adobe Extension Level 3 / ISO 32000-2 7.6.4 (PDF 1.7+, diterima oleh Acrobat 9 dan yang lebih baru, Foxit, Chrome, dan penampil Apple/macOS). Tersedia sejak HotPDF v2.17.0. Revisi default adalah R=5 dengan hashing kata sandi SHA-256. Set UseAES256R6 ke true untuk beralih ke R=6 dengan algoritme 2.B "hash dance" ISO 32000-2 (SHA-256 / SHA-384 / SHA-512 + mixer AES-128); R=6 diperlukan oleh Acrobat DC dan validator PDF/A-4. Tersedia sejak HotPDF v2.22.0.

 

Public-Key Security Handler (PDF 1.7 7.6.5)

Untuk enkripsi berbasis sertifikat (satu dokumen, banyak penerima) panggil EnablePubKeyEncryption(seed, KeyType, EncryptMetadata) sebagai ganti pengaturan UserPassword / OwnerPassword. Nilai CryptKeyLength yang sama berlaku untuk cipher simetris (k40 -> RC4-40 / V=1 + s4 SubFilter, k128 -> RC4-128 / V=2 + s5, aes128 -> AES-128 / V=4 + s5). Pemanggil harus membuat satu blob PKCS#7 envelopedData per penerima (Windows CryptoAPI, OpenSSL, atau pycryptodome) dan menambahkan setiap blob melalui AddPubKeyRecipient; kunci enkripsi file diturunkan melalui algoritme 9 (SHA-1 dari seed yang digabungkan dengan binary envelope). Tersedia sejak HotPDF v2.33.0.

 

Contoh kode

HPDF.OwnerPassword := 'password';          // Set owner password (required to change security settings)
HPDF.UserPassword := 'user';               // Set user password (required to open the document)
HPDF.ProtectOptions := [poEdit, poAnnot];  // Disallow editing and annotations
HPDF.ActivateProtection := true;           // Enable PDF security

 

Lihat juga: ActivateProtection, OwnerPassword, ProtectOptions, UserPassword