如何在WORD文档中实现盖章已经验证公章的真伪

sjzxyg 2004-01-02 11:38:33
要做电子盖章的功能,就是在WORD中插入一个公章(图片),但是如何验证他的真伪呢,同时加入想保存盖章时的一些信息,例如是什么时间,谁盖的.
请大家给个提示或者方案,不胜感激!
...全文
2249 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
taianmonkey 2004-01-16
  • 打赏
  • 举报
回复
为什么用WORD?
怎么不用指纹识别技术呢?
直接进行图像的纹理处理来判断!
ChinaAngely 2004-01-16
  • 打赏
  • 举报
回复
楼上的,请问你说的OLE文档服务器是用什么实现的,能不能具体点,我也在做这方面的东西,我目前的实现是想在word文档中插入一个ocx控件,控件中载入图片,但是用代码实现载入控件速度很慢,不知如何解决这个问题。
zxgatnudt 2004-01-16
  • 打赏
  • 举报
回复
up
lop5712 2004-01-16
  • 打赏
  • 举报
回复
to ChinaAngely(sea)
OLE文档服务器就是一个支持OLE技术的文件服务器(文件服务器是指进行对某些数据的处理,处理后能将那些数据以自己的格式存成文件形式,并和某个扩展名绑定的一个应用程序,使用MFC向导创建的缺省工程就是这么个东西)。而支持OLE即能够在Word等这种OLE容器中插入嵌入对象,可以简单的在MFC(exe)向导中的第三步标签页时,指定一种希望的复合文档支持形式。就是常说的复合文档。
对于ocx控件我没编过,所以不清楚你的问题,抱歉。
sjzxyg 2004-01-05
  • 打赏
  • 举报
回复
谢谢您,您的方法很好,可是现在的要求是插入公章的文档在WORD中打开也能看到公章,并且可以验证公章的真伪(通过接口)
lop5712 2004-01-05
  • 打赏
  • 举报
回复
编成OLE文档服务器,实现一个“检验”动词(将会在嵌入对象的右键菜单中出现),专门用于检验公章有效性

对于普通的“打开”动词(缺省动词),只能进行公章的信息的查看,不能进行修改

当第一次通过插入对象菜单命令插入这个OLE文档服务器的一个嵌入对象时,嵌入对象的状态自己定义一个,比如为“空”。当OLE文档服务器第一次关闭后,修改对象的状态,使得后面的“打开”动词都不能再对这个公章对象进行编辑,即只有第一次创建时才能修改公章的信息(比如图片、日期等)

对于OLE文档服务器存储的信息,除了图片和公章相关的一些信息外,还要记录公钥,再将文档的全部内容用私钥加密,当执行“检验”动词时解密判断是否是所属文档。但这就要求最后才插入公章对象(因为一旦插入公章对象,不得修改),并且如果文档较长将会大大增加文档的长度,而文档的内容可以通过Word提供的接口获得,而接口的实例就是OLE文档服务器的客户。但这将会使得公章对象只能插入Word(因为服务器内部要通过客户的指针请求Word的接口,如果不是Word,将会失败)。

不管怎样,必须加密一些对于这个文件来说是唯一的东西(比如上面的内容,不过如果使用文件的内容将有太多缺陷,可以考虑使用修改时间),以进行公章对于此文件的有效性。并且将公钥一起保存,使得谁都可以查看公章的信息。而由于使用私钥加密,所以只有有私钥的人才可以盖章,这样不需要数字证书等的介入。

而至于公钥和私钥的生成,使用其进行加密解密,Win2000都提供了API以直接操作,但这样在Win98或WinME下就不能加密和解密了(可以考虑将Win2000下提供这些功能的DLL打包一起发布,不过有些侵权)。
zzyx 2004-01-05
  • 打赏
  • 举报
回复
俺以前做过这个工作(前人留下的,俺只是修修补补),
完整实现是比较麻烦的

建议你找本专门的书学习看看

要实现
1.文档的不可更改性,
盖章的时候对文档内容用私匙进行hash,保存到word中
读章的时候用公匙hash,比较结果
2.文档签名的不可抵赖性
文档中要保存证书数据,并hash,避免被修改
3.证书的分发
创建私匙、公匙对,并能分发给各个盖章人


在word上具体实现还有好多细节,如数据的保存,控件的加载,被保护数据的获取等等
涉及技术秘密,细节俺就不多说了
gjd111686 2004-01-05
  • 打赏
  • 举报
回复
直接用Word的版本修订功能就可以验证
SnHnBn 2004-01-05
  • 打赏
  • 举报
回复
数字水印?
tianwb 2004-01-03
  • 打赏
  • 举报
回复
看一下ActiveX控件方面的知识,它在浏览器窗口中可直接编辑Word。
sjzxyg 2004-01-02
  • 打赏
  • 举报
回复
哪个类?WORD提供了数字签名的接口?
kenwhale 2004-01-02
  • 打赏
  • 举报
回复
找word自动化接口看看!
lop5712 2004-01-02
  • 打赏
  • 举报
回复
还可直接编写一文档服务器(不用是OLE文档服务器),注册一个文件扩展名,当双击此类文件时,打开文档服务器,但并不显示界面,直接使用文档自带的公钥解密出.doc文件(可存于临时目录下)并对比文档内容是否一致,一致则直接调用Word打开.doc文件.

创建此类文件时通过插入一.doc文件,一公章图象文件,一密钥对,通过Word的相应接口将公章图象文件插入.doc文件的末尾,并用密钥加密.doc文件,记录公钥即可.

欲修改则从服务器内部打开文件(即服务器的菜单命令,不是通过浏览器中的双击)进行修改即可.
lop5712 2004-01-02
  • 打赏
  • 举报
回复
编写一个OLE文档服务器,此服务器可以存储图象,并记录楼主需要的关于公章的信息和公钥.将描述此公章的用途的文字(比如:于某年某月由某人为某某文件所盖)使用私钥加密,比如加密"电子公章",使用随带的公钥解密,以检查此公章是否为此文件所盖.(也可将整篇文件文档进行加密,使用公钥解密后进行对比以自动显示公章的真实性,但这需要Word留有必要的接口并编写附加的程序.或者不作成OLE文档服务器,也就不插入Word文档,专门对Word文件进行加密,生成一个已加密文件,此文件可被唯一解密,即保证内容的完整性,但不保证内容的隐秘性(任何人都可打开它))

不同部门的公章使用不同的密钥对,此服务器可使用任何已注册的私钥进行加密并生成文档(此文档由于是OLE文档,可插入Word),即只有注册了私钥的服务器才能制作公章,并插入Word文档(或象上面说的制作加密文件).
sjzxyg 2004-01-02
  • 打赏
  • 举报
回复
没有人做过类似的吗?
iwantin 2004-01-02
  • 打赏
  • 举报
回复
我们公司有使用证书的全套API,包括加密,签名等,可以去我公司主页看看
www.sheca.com

或者与我联系:
gujianjun@sheca.com
sjzxyg 2004-01-02
  • 打赏
  • 举报
回复
自己UP

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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