保存文档时如何防止丢失数字签名?

保存文档时如何防止丢失数字签名?

问题

有什么有效的解决方法可以防止文件保存时数字签名丢失?或者,有什么有效的方法可以将保存数据复制到启用宏的 MS Word 文档并附带数字签名?

一些背景...

长话短说,我的工作场所现在要求使用数字签名对启用宏的文件进行签名,否则由于安全策略更新,宏将被禁用(没有启用选项)。我特别担心的是使用 VBA 的 MS Office 应用程序。

笔记:我对此事没有发言权,也没有能力与实施变更的团队讨论此事。

另请注意:不幸的是,我不知道什么类型的签名会应用于我的文档或它来自哪里。

照这样说,我不太熟悉数字签名然而据我了解,一旦文件被签名,如果你保存文件 更新项目中的任何代码都会丢失数字签名

我刚刚开发完一个包含大量 VBA 的 MS Word 文档,然后UserForms政策就发生了变化,而我的潜在问题就出在这里。

为了清晰起见

MS Word 文档是一种在企业各种培训中使用的评估,旨在确保员工对新学到的工作类型有充分的理解。

文档保存分为三个阶段:

  1. 评估创建
  2. 参与者完成情况
  3. 评估员评分

步骤1涉及UserForm在完成后将用户输入值写入空白文档上预设的各种书签(占位符和封闭书签)。然后以编程方式保存文档,并将其从“评估模板”重命名为“[技能类型] 评估 [评估编号]”(每个用户输入分配“[]”变量)。

第2步涉及UserForm请求一些基本用户数据(姓名、位置、团队编号等)并将文档中随附书签的内容显示UserForm labels为问题,并TexBox带有提供答案的部分。然后通过电子邮件附件以编程方式提交,这涉及保存文档并重命名以在文件名末尾添加“_[参与者姓名]”。

步骤3涉及一名主持人在另一名主持人的帮助下对评估进行评分UserForm,然后通过电子邮件(再次使用 VBA)将结果提交给参与者团队负责人。此处,文档以无宏形式保存,因为它仅作为结果的参考发送。

总之

因此,根据我的理解,一旦文档保存, VBE 项目有任何更新,数字签名将不再有效,并且我的项目在我们当前的工作环境中不再有用。

我正在尝试更好地理解数字签名的工作原理(如果与我当前的理解不同),并且我正在尝试找出一些替代解决方案来保存文档并随后在必要时丢失签名。

作为我尝试的一个例子,一位同事用将用户输入写入保存到.bin用户文档的文件中(仅 5 个简短输入)来代替保存 excel 表单。由于此表单从未保存(实际上已禁用保存文档),因此这是一种替换提示SaveAs并将工作簿保持为启用宏的合适方法。

笔记:我不认为这是一个适合我的文档的解决方案,因为我的文档中需要输入大量的数据(更不用说上面的内容只会显示进行更改的用户的结果,而不会显示其他用户的结果)。

更新

似乎测试过的文件具有写入 VBE 的函数(工作表是项目的重要组成部分),所以这可能是导致我对所做的更改感到困惑的原因,从而导致签名丢失。

现在我对签名有了更多的了解(我可能问得太早了)以及环境中其他文件的实际情况,我在想如果文档是经过数字签名的,并且此后在 VBE 中没有进行任何更改,那么可以保存文档内容的更改,这不会影响签名的有效性?

相关内容