当前位置: 首页 > 知识库问答 >
问题:

如何用C#提供文件的密码作为参数来解密pdf文件?

章昱
2023-03-14

我使用以下代码生成了一个带有密码保护的pdf文件

using (Stream input = new FileStream(InputFile, FileMode.Open, FileAccess.Read, FileShare.Read))
{
    using (Stream output = new FileStream(OutputFile, FileMode.Create, FileAccess.Write, FileShare.None))
    {
        PdfReader reader = new PdfReader(input);
        PdfEncryptor.Encrypt(reader, output, true, strDob, "secret", PdfWriter.ALLOW_SCREENREADERS);
    }
}

我想通过代码删除使用上面的代码生成的PDF文件的密码。

共有1个答案

董意蕴
2023-03-14
string WorkingFolder = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
string InputFile = Path.Combine(WorkingFolder, "test.pdf");
string OutputFile = Path.Combine(WorkingFolder, "test_dec.pdf");//will be created automatically
//You must provide owner password but not the user password .
private void DecryptFile(string inputFile, string outputFile)
{

    string password = @"secret"; // Your Key Here           
    try
    {
        PdfReader reader = new PdfReader(inputFile, new System.Text.ASCIIEncoding().GetBytes(password));

            using (MemoryStream memoryStream = new MemoryStream())
            {
                PdfStamper stamper = new PdfStamper(reader, memoryStream);
                stamper.Close();
                reader.Close();
                File.WriteAllBytes(outputFile, memoryStream.ToArray());
            }

    }
    catch (Exception err)
    {
        Console.WriteLine(err.Message);
    }
}
 类似资料:
  • 问题内容: 我正在使用JConsole访问我的应用程序MBean,并且使用了password.properties文件。但是根据Sun的规范,此文件仅包含明文格式的密码。 现在,我想对密码进行加密并将其用于JConsole的JMX用户身份验证(“远程”部分中的“用户名”和“密码”字段)。我可以使用任何预定义的加密逻辑或自己的加密算法。 是否有人知道将这种纯文本密码更改为加密密码,这样JMX Fra

  • 我是加密新手。这个问题是我上一个问题的子问题。我有一个用OpenSSL util加密的文件: 我用这个代码来解密它: 而且很有效。但这是一个测试案例。实际情况是,我用以下参数对文件进行了加密: openssl aes-256-cbc-nosalt-in fileIn-out fileOUT-p-k KEY 请注意,出现了'-no盐'参数。问题是PBEKeySpec需要不为空,也不为空的和参数。它也

  • 问题内容: 我需要加密和解密pdf文件。有免费的或低成本的Java API可以做到吗?基本上,我需要向普通用户隐藏文件。关于以编程方式实现这一目标的任何其他建议? 谢谢,深 问题答案: 使用iText: 这是PDFEncryptor和PDFWriter的API (用于权限)。

  • 我需要能够删除安全/加密从一些PDF文档,最好与itextsharp库。这在过去是可能的(如何通过使用C#提供文件的密码作为参数来解密pdf文件?),但最近对库的更改意味着该解决方案不再起作用。

  • 我正在创建一个web应用程序来分配用户对数据库的访问权限。我们获得一张票证,授予用户访问权限,服务台人员选择sql实例,在应用程序上输入用户名和密码以分配访问权限。我的问题是连接字符串都存储在sql数据库中,实例密码使用hashbyte函数加密。 由于密码已加密,我如何通过我的C#asp.net代码连接到数据库。帮助台人员只会选择实例,不会输入登录凭据

  • 问题内容: 我想使pdf文件受密码保护。我只是对它进行了搜索,并在下面找到了一个好的解决方案。它工作正常,但是使用下面给定的代码保护pdf后,它会清除pdf中已经存在的所有数据。 此代码使用的jar文件是: itextpdf-5.2.1.jar bcmail-jdk16-1.46.jar bcprov-jdk16-1.46.jar bctsp-jdk16-1.46.jar 保护PDF的代码: 我需