In our modern, cloud-connected world, security=
+ is a major concern in file transmission over the Internet, which may provi=
+de unauthorized access to documents. In July 2017, PDF 2.0 or ISO 32000-2 =
+was released by the International Organization for Standardization (ISO), w=
+hich included the next level of PDF security with additional features.
PDF 2.0 improves security management by providing AE=
+S (Advanced Encryption Standard) 256 Revision 6 with Unicode (non-Roman cha=
+racters) password support. Our Essential PDF library provides support to encrypt=
+ and decrypt PDF documents with AES 256 Revision 6 to comply with PDF 2.0. =
+
The Essential PDF library provides support for basic=
+ to advanced encryption standards:
+
-
+
- RC4 (Rivest Cipher 4) 40-bit +
- RC4 128-bit +
- AES 128-bit +
- AES 256-bit Revision 5 +
- AES 256-bit Revision 6 (PDF 2.0) +
All about passwords
+The PDF format supports two types of passwords:
+
-
+
- Owner password, which is used= + to set certain restrictions in a PDF document. +
- User password, which is used = +to restrict the opening of a PDF document. +
The strength of the password is not only determined =
+by the key size and algorithm, but also depends on the length and quality o=
+f the password. The common passwords like names, numbers, pet names, dates =
+of birth, etc., should not be used as a password since they can be easily c=
+racked by a dictionary attack. Other common ways to crack a password are di=
+fferential attack, brute force attack, algebraic attack, and linear attack.=
+ Follow these guidelines to create a quality password:
+
-
+
- Use a combination of uppercase and lowercase letters, symbols, and numb= +ers. +
- Use Unicode characters when using AES 256-bit Revision 6 encryption. +
- The user password and owner password should not be the same. +
Customize permissions
+By customizing the permission settings, you can allo=
+w or restrict users from performing certain actions such as content copying=
+, printing, editing the document, filling form fields, and more. Permission=
+ flags supported by Essential PDF are listed in the following table.
|
+ Permission= + flag + |
+
+ Description<= +/span> + |
+
|
+ FullQualityPrint |
+
+ Allows users to print a clear copy of the document.<= +o:p> + |
+
|
+ Print |
+
+ Allows users to be able to print the document with=
+ low quality. |
+
|
+ FillFields |
+
+ Allows users to fill out and sign the form. |
+
|
+ CopyContent |
+
+ Allows users to copy content from the document. |
+
|
+ AccessibilityCopyContent |
+
+ Enables content screen reading for users with disa=
+bilities. |
+
|
+ EditAnnotations |
+
+ Allows users to get user input or feedback on a do=
+cument. |
+
|
+ AssembleDocument |
+
+ Allows users to manipulate the pages in the document=
+. |
+
|
+ EditContent |
+
+ Allows users to edit the content in the document.<= +o:p> + |
+
Document security set= +tings in Acrobat
+Getting started with PDF security
+Already referencing the required assemblies fr= +om NuGet= +? Great! Now we need to add a namespace in our class, as in the following c= +ode sample.
+1 2 3 | using Syncfusion.Pdf; using Syncfusio=
+n.Pdf.Security;using Syncfusion.Pdf.Gr=
+aphics; |
Here is the code to creat= +e a PDF from scratch and encrypt it with both owner and user passwords.
+01 02 03 =
+04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | //Create a new PDF document.using (PdfDocument document =3D n=
+ew PdfDocument()){//Add a pag=
+e in the PDF document.=
+ PdfPage page =3D document.Pages.Add();//Acce=
+ss the PDF graphics instance of the page.PdfGraphics graphics =3D page.G=
+raphics;//Create the PDF font instance.PdfStandardFont font =3D&nb=
+sp;new PdfStandardFont(PdfFontFamily.TimesRoman, 20f, PdfFontStyle.Bold);//PDF document security.PdfSecurity security =3D document.Security;=
+code>//Specifies encryption key size, algorithm, and permission.secur=
+ity.KeySize =3D PdfEncryptionKeySize.Key128Bit;security.Algorithm =3D =
+PdfEncryptionAlgorithm.AES;//Customize permissions in the document.=
+security.Permissions =3D PdfPermissionsFlags.Print | PdfPermissionsFla=
+gs.FullQualityPrint;=
+ &=
+nbsp; //Provide owne=
+r and user passwords.security.OwnerPassword =3D "SyncOP=C3=9C256PDF";s=
+ecurity.UserPassword =3D "SyncUP=E2=
+=82=AC99PDF";//Draw text in PDF pag=
+e.graphics.DrawString("Document is en=
+crypted with AES 256 Revision 6", font, Pdf=
+Brushes.Black, PointF.Empty);//Save the document to the file system=
+.document.Save("Sample.pdf"} |
This sample can be downloaded from the following lin=
+k: SecuritySample.zip
Wrapping up
+As you can see, Essential PDF provides advanced secu=
+rity for protecting PDF documents. Use them effectively to generate more se=
+cure documents from your application. Take a moment to peruse the doc=
+umentation where you=E2=80=99ll find other options like changing passwo=
+rds or permissions, protecting existing PDF documents, and removing passwor=
+ds, all with accompanying code examples.
If you are new to our PDF library, it is highly reco=
+mmended that you follow our getting started guide.
If you=E2=80=99re already a Syncfusion user, you can=
+ download the product setup here. If you=E2=80=99=
+re not yet a Syncfusion user, you can download a free, 30-day trial here.
If you have any questions or require clarifications =
+about this support, please let us know in the comments below. You can also =
+contact us through our suppor=
+t forum or D=
+irect-Trac. We are happy to assist you!
Leave a comment
+