为了账号安全,请及时绑定邮箱和手机立即绑定

C# 加密、解密PDF文档(基于Spire.Cloud.PDF.SDK)

标签:
C#

Spire.Cloud.PDF.SDK提供了接口PdfSecurityApi可用于加密、解密PDF文档。本文将通过C#代码演示具体加密及解密方法。

使用工具:

  •   Spire.Cloud.PDF.SDK

  •   Visual Studio

必要步骤:

步骤一:dll文件获取及导入

    方法1. 通过官网本地下载SDK文件包。(须注册并登录)

https://img1.sycdn.imooc.com//5e0ee04a0001ac6a13660625.jpg

下载后,解压文件,将Spire.Cloud.Pdf.Sdk.dll文件及其他三个dll添加引用至VS程序;

导入效果如下如所示:

https://img1.sycdn.imooc.com//5e0ee0610001ef6102780456.jpg

   方法2. 在程序中通过Nuget搜索下载,直接导入所有dll。

 

步骤二:App ID及Key获取。云端创建账号,并在“我的应用”板块中创建应用以获得App ID及App Key。

https://img1.sycdn.imooc.com//5e0ee07800017b5f05540170.jpg

步骤三:源文档上传。在“文档管理”板块,上传源文档。这里可以建文件夹,将文档存放在文件夹下。不建文件夹时,源文档及结果文档直接保存在根目录。本文示例中,建了两个文件夹,分别用于存放源文档及结果文档。(云平台提供免费1 万次调用次数和 2G 文档内存)

https://img1.sycdn.imooc.com//5e0ee08a0001c7a505540203.jpg


C# 代码示例

【示例1】加密PDF文档

using System;
using Spire.Cloud.Pdf.Sdk.Client;
using Spire.Cloud.Pdf.Sdk.Api;
using System.IO;
using System.Collections.Generic; 
 
  namespace Encryt
     {    
          class Program 
             {     
                static String appID = "App ID";        
                static String appKey = "App Key";        
                
                static void Main(string[] args)       
                    {            
                     //配置账号信息            
                      Configuration pdfConfiguration = new Configuration(appID,appKey);            
                      PdfSecurityApi pdfSecurityApi = new PdfSecurityApi(pdfConfiguration);  
                        
                      string name = "sample.pdf";//源文档            
                      string outPath = "pdfsecurity/Encrypt.pdf";//结果文档路径(将结果文档存放在pdfsecurity文件夹下)
                      string userPassword = ToBase64String("123");//用户密码                
                      string ownerPassword = ToBase64String("321");//所有者密码            
                      string keySize = "Key40Bit";//设置keySize(如果不需要设置,可设置为null)            
                      List<string> permissionsFlags = new List<string>();//设置permissionsFlags(如果不需要设置,可设置为null)            
                      permissionsFlags.Add("Print");            
                      string folder = "input";//源文档所在文件夹            
                      string password = null;//源文档密码             
                      
                      //调用方法加密文档           
                      pdfSecurityApi.EncryptDocumentInStorage(name,outPath,userPassword,ownerPassword,keySize,permissionsFlags,folder,password);      
                  }       
            private static string ToBase64String(string value)       
             {           
                 byte[] b = System.Text.Encoding.UTF8.GetBytes(value);           
                 string base64String = Convert.ToBase64String(b);            
                 base64String = base64String.Replace("+", "%2B");           
                 return base64String;       
             }    
        }
  }

生成的文档打开时,需要输入密码。

文档加密结果:

https://img1.sycdn.imooc.com//5e0ee16300012fc805540334.jpg


【示例2】解密PDF文档

这里以上文中生成的加密PDF为测试文档。

using System;
using Spire.Cloud.Pdf.Sdk.Client;
using Spire.Cloud.Pdf.Sdk.Api; 

namespace Decrypt
  { 
     class Program 
        {     
            static String appID = "App ID";        
            static String appKey = "App Key";        
            
            static void Main(string[] args)     
               {            
                //配置账号信息            
                Configuration pdfConfiguration = new Configuration(appID, appKey);            
                PdfSecurityApi pdfSecurityApi = new PdfSecurityApi(pdfConfiguration);             
                
                string name = "Encrypt.pdf";//源文档            
                string outPath = "pdfsecurity/Decrypt.pdf";//结果文档路径(pdfsecurity为结果文档所在文件夹)            
                string password = ToBase64String("321");//文档密码(这里需要使用ownerpassword)            
                string folder = "pdfsecurity";//源文档所在文件夹             
                
                //调用方法解密文档            
                pdfSecurityApi.DecryptDocumentInStorage(name,outPath,password,folder);     
           }        
         private static string ToBase64String(string value)      
           {            
            byte[] b = System.Text.Encoding.UTF8.GetBytes(value);            
            string base64String = Convert.ToBase64String(b);            
            base64String = base64String.Replace("+", "%2B");            
            return base64String;        
            }                
       }
  }

生成的文档将不再有密码保护。


(本文完)

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
9
获赞与收藏
48

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消