绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
C# 加密、解密PDF文档(基于Spire.Cloud.PDF.SDK)
2020-01-03 15:52:36

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

 

使用工具:

  • Spire.Cloud.PDF.SDK
  • VisualStudio

 

必要步骤:

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

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

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

导入效果如下如所示:

           方法2. 在程序中通过Nuget搜索下载(https://www.e-iceblue.cn/net/nuget-spire-cloud-web-api.html),直接导入所有dll。

 

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

Key。

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

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;
        }
    }
}

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

文档加密结果:

【示例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;
        }
    }
}

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


(本文完)

分享好友

分享这个小栈给你的朋友们,一起进步吧。

应用开发
创建时间:2020-06-17 15:31:04
应用软件开发是指使用程序语言C#、java、 c++、vb等语言编写,主要是用于商业、生活应用的软件的开发。
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • 栈栈
    专家
戳我,来吐槽~