首页 > 其他分享 >一篇文章解密如何轻松实现移动应用的电子和手绘PDF签名功能!

一篇文章解密如何轻松实现移动应用的电子和手绘PDF签名功能!

时间:2023-10-19 09:33:38浏览次数:45  
标签:文件 DevExpress 解密 API 签名 哈希 PDF 手绘

对PDF文件签名是移动设备上越来越普遍的使用需求,本文将描述自动生成/“手绘”签名与如何使用DevExpress Office File API组件来实现在.NET MAUI应用程序中快速合并签名/签名支持之间的区别。

DevExpress Office File API使用教程

DevExpress Office File API是一个专为C#, VB.NET 和 ASP.NET等开发人员提供的非可视化.NET库。有了这个库,不用安装Microsoft Office,就可以完全自动处理Excel、Word等文档。开发人员使用一个非常易于操作的API就可以生成XLS, XLSx, DOC, DOCx, RTF, CSV 和 Snap Report等企业级文件。

获取DevExpress Office File API v23.1正式版下载

DevExpress技术交流群9:909157416      欢迎一起进群讨论

电子 VS 手绘PDF签名区别

虽然这两种类型的签名都很相似,但它们在功能/实践上存在差异。

电子签名(e-sign)使用加密方法来确认文件是从特定的源发送的,并且在发送后没有被更改。下面的列表描述了使用电子签名签名文件时执行的简化操作顺序:

1. 发送方计算他们想要发送的PDF文件的哈希码。

2. 发送方创建一个公钥/私钥对,并用私钥加密哈希码。

3. 发送方发送PDF文件、加密的哈希码(签名)、公钥和证书,证书包含发件人的信息,接收方可以用它来确认公钥的真实性。

4. 接收方用公钥解密加密的哈希码(签名),计算文档的哈希码,并比较这些哈希。

5. 如果它们相等,则该文件是真实的。如果文件被修改,则文档哈希码将与使用签名中的公钥解密的哈希码不匹配。

为了获得额外的保护,您可以使用认证服务。这些服务有助于确保公钥属于发送文档的用户。

手绘签名很像纸上的“湿”签名,在PDF的情况下,它只是一个图像插入到文档的特定区域。您可以将这两种签名类型结合起来,以确认手绘签名的真实性。

添加PDF签名

DevExpress Office File API包含设计用于处理不同文档类型(PDF, Word, Excel, HTML)的类,在本文中,我们将使用Office File API对PDF文件进行签名,其中包含了刚才提到的两种签名类型。

PdfDocumentProcessor类是PDF文件修改的入口点,在这个项目中,我们使用了这个类的以下成员:

Android和iOS应用都是沙盒式的,他们对设备文件系统的访问权限有限。要处理应用程序包文件,需要将它们复制到Cache或AppDataDirectory(在本例中使用)文件夹中。在我们的例子中,这些文件是PDF和PFX证书文件。下面的代码示例定义了将指定的PDF文件从应用程序包复制到AppDataDirectory文件夹的方法:

public async Task<string> CopyWorkingFilesToAppData(string fileName) {
using Stream fileStream = await FileSystem.Current.OpenAppPackageFileAsync(fileName);
string targetFile = Path.Combine(FileSystem.Current.AppDataDirectory, fileName);
using FileStream outputStream = File.OpenWrite(targetFile);
fileStream.CopyTo(outputStream);
return targetFile;
}

一旦实现,您就可以使用PdfDocumentProcessor.LoadDocument 方法打开PDF文件。

DevExpress Office File API允许您检测PDF AcroForm字段并根据需要填充它们,我们使用以下成员来定位第一个可用的签名字段:

在这个特殊的使用场景中,PdfSignatureBuilder是另一个重要的类。它存储了签名本身的以下信息:

用户可以“绘制”一个签名,并将其嵌入到PDF文件中,这是通过使用DrawingView控件实现的。顾名思义,该控件可以将用户的绘图保存为图像——稍后我们将图像传递给PdfSignatureBuilder。

一旦文档被签名, PdfDocumentProcessor.SaveDocument方法保存签名的PDF文件。


更多DevExpress线上公开课、中文教程资讯请上中文网获取

标签:文件,DevExpress,解密,API,签名,哈希,PDF,手绘
From: https://www.cnblogs.com/AABBbaby/p/17773954.html

相关文章

  • 常用JS加密/解密类型以及案例
    简介这里给大家汇总常用不常用的JS加密案例,免得大家用的时候到处去找例子。正题对称加密:替代字符表示法:使用Base64或类似的编码对数据进行简单的转换,不过这并不是真正的加密,而只是一种表示形式的转换。<!DOCTYPEhtml><html><body><h2>Base64编码示例</h2><p>原始文本:Hello......
  • 《机器学习与优化》PDF高质量正版电子书
    下载:https://pan.quark.cn/s/5fb461be1a45......
  • 《Java 8实战》PDF高清高质量电子书
    下载:https://pan.quark.cn/s/c6c7603af158......
  • 《深入理解SVG》高品质PDF电子书
    下载:https://pan.quark.cn/s/3eb5231d5cf3......
  • 【专题】2022年中国跨境电商行业研究报告PDF合集分享(附原数据表)
    报告链接:http://tecdat.cn/?p=32044近年来,我国的跨境电子商务发展迅速,在过去五年中,其贸易额增长率达到了16.2%,已经成为稳定对外贸易的一支重要力量。阅读原文,获取专题报告合集全文,解锁文末52份跨境电商行业相关报告。一方面,随着跨境电子商务的发展,跨境电子商务的监管政策得到了......
  • PS去除PDF中的WPS 编辑试用水印
    1.问题自己的学习资料.pdf被添加上了相关水印,导致阅读起来很不舒服2.解决方式(适用于白底黑字的pdf资料,去除水印)2.1初始图片如下:2.2打开PS,选择菜单栏中选择一项中的色彩范围,使用吸管取样颜色,可见相关部分已被选中2.3使用delete清楚即可......
  • 利用 python 抽取pdf 中表格到 excel
    首先推荐camelotpdf_file_input="TTAF086-2021.pdf"tables=camelot.read_pdf(pdf_file_input,pages='11',flavor='stream')df=tables[0].dfdf.to_excel("TTAF086-2021.xlsx",index=False)pdf表格效果如下其......
  • 企业级 SigningPDF 数字签名 - 如何安装 GlobalSign AATL 文档签名证书
    派胜SigningPDF全球签是一款企业级PDF数字签名软件,可信数字签名、电子印章和时间戳解决方案。SigningPDF支持Adobe全球认可的证书颁发机构,高自动化为PDF文档添加可信合法的数字签名。访问SigningPDF官网下载最新版。https://www.paioffice.com/signingpdf/downloads(1)申......
  • Vue 实现 PDF 导出功能
    旨在通过html2canvas和jspdf,先将页面的html转成canvas,再将canvas转成pdf,同时解决了分页截断的问题。安装依赖yarnaddhtml2canvasyarnaddjspdf思路通过网上的一些教程,初步实现了html转pdf的功能,将一整个DOM元素放进去,虽然可以粗糙实现,但是出现了很多地方......
  • JavaScript高级程序设计(第3版)pdf电子版Nicholas C. Zakas
    JavaScript高级程序设计(第3版)pdf电子版作者:[美]NicholasC.Zakas原作名:ProfessionalJavaScriptforWeb出版年:2012-3-29ISBN:9787115275790链接提取码:jz6rJavaScript最基础的书籍。......