工具软件   办公软件   操作系统   网络安全   设计在线   程序开发   教程宝典   软件下载   软件论坛
您的位置:软件 > 工具软件 > 网络工具 > 网际工具 > 正文
给你的XML文件做个数字签名
[文章信息]
作者:李红 原创
时间:2005-02-17
出处:天极软件
责任编辑:still
[文章导读]
我们可以对 XML文件进行 数字签名,保证 XML文档的安全,以便确认原始文档没有被污染或变更。
advertisement
热点推荐
· 2月17日软件精选 ImageReady制作焰火
· 如何鉴别防火墙的实际功能差异
· Win 2000与XP网络登录中的一点差异
· 合理使用Win XP硬件配置文件
· 在C++中创建并使用Web服务
[正文]

上一页  1 2 3 4 5  

  二、XML安全组件签名法

  IBM 的 X ML 安全组件,也可以对XML文件进行数字签名,方法如下:

  1 、准备工作

  下载安装 Java 2 Development Kit ,下载地址 http://192.18.97.149/ECom/EComTicketServlet/BEGIN7266332AC4DA34792F559F9D93294C03/-2147483648/719182887/1/430034/429902/719182887/2ts+/westCoastFSEND/j2sdk-1.4.1_07-oth-JPR/j2sdk-1.4.1_07-oth-JPR:1/j2sdk-1_4_1_07-windows-i586.exe ,文件大小 37MB ;然后 下载安装之XMLSecurity Suite ( http://www.alphaworks.ibm.com/tech/xmlsecuritysuite ) ,将 /xss4j/samples和xss4j.jar ( http://pws.prserv.net/Hiroshi.Maruyama/xmlbook/samples4v2/chap3/xss4j.jar )添加至你的 classpath 中。

  2、创建自己的数字证书

  在对 XML文件数字签名之前,首先应该有一个X.509数字证书,你可以用 Java 2 的 keytool 命令创建这个数字证书,方法如下:进入命令提示符下,CD命令进入X:\Program Files\j2sdk1.4.1_07\bin目录,输入以下命令

  keytool -genkey -dname "CN=lh1, OU=cwk, O=zlsgs,L=liuan, S=anhui, C=china" -keypass 123456 -storepass security -alias xss4j

  在以上命令中, dname称为特异名,特异名在整个因特网上都是唯一的,dname由普通名(CN)、组织单元(OU)、组织(O)、区域 (L)、州(S)和国家(C)组成;密匙库 (-storepass) 的密码为 security,此证书的私钥密码 (-keypass)为123456,而 xss4j 则是认证 (-alias) 的别名。

  3、如何对内部XML资源数字签名

  下面我们要用刚才生成的数字证书,对 d:/xss4j/samples/sonnet.xml文件进行数字签名,首先我们看看如何对内部XML资源数字签名?如果你要以这种方式对sonnet.xml签名,签名过后,将会产生一个新文件lh.XML,该文件内容如下图1所示,包含了签名信息、密钥和原来sonnet.xml文件的内容(如下图1)。

图1

  要创建这样的数字签名,你可以使用 SampleSign 应用程序,这个程序是XML安全组件附带的,你可以在 xss4j/samples 目录中找到之。以下是对 sonnet.XML进行数字签名的方法:

  进入命令提示符下, CD命令进入X:\Program Files\j2sdk1.4.1_07\bin目录,输入以下命令(注意以下命令是单行的)

  java SampleSign xss4j security 123456 –embXMLfile:///d:/xss4j/samples/sonnet.XML> lh.XML

  请注意:上面命令中的别名( xss4j)、密匙库密码(security)、私钥密码(123456)、与以上keytool 命令中的相同,这里用 file: URL 代替了简单的文件名,而输出内容则送至(用 >操作符)文件 lh.xml中。执行过该命令之后,利用证书对内部XML资源数字签名就大功告成,结果会产生一个签名过的XML文件lh.XML。

  4、如何对外部XML资源数字签名

  对外部XML资源签名,表明文件中的<Signature>下包含XML资源的 URL,而不是资源本身,即分离的数字签名。要创建这样的数字签名,应使用 -extXML选项,方法如下:进入命令提示符下,CD命令进入X:\Program Files\j2sdk1.4.1_07\bin目录,输入以下命令

  java SampleSign xss4j security 123456 –extXMLfile:///d:/xss4j/samples/sonnet.XML> external-lh.XML

  于是将产生一个签名过的 XML文件external-lh.XML,它与以上的lh.XML相似,不过sonnet.xml文件的内容,并没有被复制到external-lh.xml中的<Signature>下。

  5、验证数字签名

  XML安全组件还提供了一个实用程序 SampleVerify,用来验证数字签名。使用它,你可以检查某个签名过的XML文件,以便确认被签名的资源没有被篡改,此外还能检查该签名与发送者的证书信息是否相符。

  例如要验证 external-lh.xml中的数字签名,你可以这样操作:进入命令提示符下,输入以下命令

  java SampleVerify -dom < external-lh.XML

  显示结果如下:

  Signer: CN=lh1, OU=cwk, O=zlsgs,L=liuan, S=anhui, C=china

  SignedInfo Bytes: 1069

  ----------------------------------------

  --> Location: file:///d:/xss4j/samples/sonnet.XML

  Validity: Ok

  --> SignedInfo: Ok

  --> All: Ok?

  从以上命令的显示结果可知,该数字 签名有效, 签名过的文件没有被改动。假如签名过的文件被改动了,以上命令执行后,将会显示不同的结果,表示该签名不再有效,于是改动过的XML文件同数字签名就不符,我们即可知道不能信任该文件。 (完)

点这里回到文章导读>>>


上一页  1 2 3 4 5  

发表评论推荐给朋友我想参加相关培训打印我对此感兴趣订阅电子杂志
相关内容焦点新闻
  • Office要进驻企业服务器 首先整合XML
  • 与XML语言协同运用的.NET工具
  • XML遭遇性能瓶颈 “减肥”提高速度?
  • ASP.NET创建XML Web服务全接触
  • 用C#把文件转换为XML
  • 使用简单的T-SQL XML语法传递参数
  • 如何用SQL数据支持XML
  • 构建基于Web/XML的信息集成研究
  • 用Visual C#向Excel2002传输XML数据
  • 使用PHP 5.0 轻松解析XML文档
  • 惠普女CEO人走茶凉 中国公司合并前途难料
  • 美可能就知识产权向WTO投诉中国 称损失25亿
  • 2005年IT就业的热与冷 软件人才缺口较大
  • 联想IBM联姻照旧 配合国会调查不误正式合并
  • 民营家电商排队造手机 设备商全面杀入
  • 英特尔澄清杨旭任职传闻 官方没宣布此消息
  • 国资委河北密制联通拆分方案
  • 垃圾邮件害人害企害国 清除垃圾邮件不手软
  • Advertisement