首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >返回PDF页面的SHA256散列

返回PDF页面的SHA256散列
EN

Stack Overflow用户
提问于 2014-10-08 21:41:16
回答 4查看 4K关注 0票数 2

我正在编写一个C# WPF应用程序,其中我插入了一个'header‘页面,作为一批PDF文档的第一页。头页取自批处理中的第一个pdf的第一页。

用户将启动此进程,但我希望确保在以后的某个日期,用户不能再次运行此进程,这将导致插入另一个标头。

因此,我的计划是获取头页的SHA256散列,并将其与其他pdfs的第一页的散列进行比较。如果它们匹配,则第一页与标题页相同,如果不匹配,则插入标头。

我编写了下面的代码,以测试在pdf中获取第一页的哈希,但是每次运行它时,哈希都是不同的。

为什么每次都不一样?

谢谢

代码语言:javascript
复制
using System.IO;
using System.Text;
using System.Security.Cryptography;
using PdfSharp.Pdf;
using PdfSharp.Pdf.IO;

namespace Syncada
{
    public class PDFDoc
    {

        private PdfDocument pdfDoc;

        public PDFDoc(string path)
        {
            pdfDoc = PdfReader.Open(path,PdfDocumentOpenMode.Import);
        }

        public string GetPageOneHash()
        {

            byte[] hash;

            PdfPage page = pdfDoc.Pages[0];
            using (MemoryStream stream = new MemoryStream())
            {
                PdfDocument doc = new PdfDocument();
                doc.AddPage(page);
                doc.Save(stream,false);

                SHA256 sha256 = SHA256.Create();
                hash = sha256.ComputeHash(stream);
            }

            StringBuilder sb = new StringBuilder();
            for (int i = 0; i < hash.Length; i++)
            {
                sb.Append(hash[i].ToString("X2"));
            }
            return sb.ToString();
        }
    }
}
EN

Stack Overflow用户

发布于 2014-10-09 16:26:32

您还可以在页面字典中插入自定义键,并且在重新加载文件时检查该键是否存在。

票数 0
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26266949

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档