求助 C# 对PDF文件进行解密操作

hangx29 2014-05-28 03:13:24
从论坛找到有大神用iTextSharp对PDF进行加密,小弟要实现对PDF进行加密解密操作,加密实现不错,同样找到一段解密,但是解密不够理想,解密之后打开是不用输入密码了,但是PDF文件上面会出现已加密字样,说明解密是不成功的,求大神帮忙啊,该怎么解密啊
//PDF加密
public static void Encode(string pdfSrc, string pdfDest, bool strength,
string userPassword, string ownerPassword, int permissions)
{
PdfReader reader = new PdfReader(pdfSrc);
Stream os = (Stream)(new FileStream(pdfDest, FileMode.Create));
PdfEncryptor.Encrypt(reader, os, strength, userPassword, ownerPassword, permissions);
}
//PDF解密
public static void Decode(string pdfSrc, string pdfDest, string ownerPassword)
{
PdfReader reader = new PdfReader(pdfSrc, Encoding.Default.GetBytes(ownerPassword));
Stream os = (Stream)(new FileStream(pdfDest, FileMode.Create));
PdfEncryptor.Encrypt(reader, os, null, null,
PdfWriter.AllowAssembly | PdfWriter.AllowFillIn | PdfWriter.AllowScreenReaders | PdfWriter.AllowPrinting, false);
}

...全文
462 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
尘世奇葩 2016-04-26
  • 打赏
  • 举报
回复
请问一下PdfEncryptor.Encrypt加密后当前流是不可读吧,int permissions 它的这个怎么给值
hangx29 2014-05-29
  • 打赏
  • 举报
回复
问题我已经解决了还是没人回我啊,解密的意思是已知密码用代码将密码去除,我已经找到了解决方法,经测试没问题,在此将方法贴出以帮助对于PDF操作 方面一窍不通的人
/// <summary>
        /// PDF解密 有密码的PDF文件生成为无密码的
        /// </summary>
        /// <param name="inputFile">PDF加密文件路径</param>
        /// <param name="outputFile">PDF去除密码后文件路径</param>
        /// <param name="ownerPassword">拥有全部权限的密码</param>
        public static void Decode(string inputFile, string outputFile, string ownerPassword)
        {
                PdfReader reader = new PdfReader(inputFile, new ASCIIEncoding().GetBytes(ownerPassword));
                using (MemoryStream memoryStream = new MemoryStream())
                {
                    PdfStamper stamper = new PdfStamper(reader, memoryStream);
                    stamper.Close();
                    reader.Close();
                    File.WriteAllBytes(outputFile, memoryStream.ToArray());
                }
        }
hangx29 2014-05-28
  • 打赏
  • 举报
回复
怎么没有人来啊

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧