[摘要]随着电子商务和网络技术的不断发展,网上支付成为该发展过程中一个必不可少的平台。在这个交易平台上,时时都在流动着大量的数据,如何利用一种新的技术来管理这些重要的数据。本文就是利用XML技术来实现数据流动过程中交易各方比较关注的问题——数据的安全高效流动。
一、前言
电子商务是IT技术和商务运行结合而产生的一种新型的商务交易过程,是利用先进的电子技术进行商务活动的总称,它通过网络,使用先进的信息处理工具,将买卖双方的商务信息、产品信息、销售信息、服务信息以及电子支付等商务活动,用相互认同的交易标准来实现。XML是互联网联合组织(W3C)为便于软件开发人员在网页上组织信息而创建的一组规范,其目的不仅在于满足不断增长的网络应用需求,更是为了确保在通过网络进行交互合作时,具有良好的可靠性和互操作性。
随着电子商务中交易规模的扩大,交易中产生的数据也在急剧增加,对这些数据,不同的主体会以不同的方式进行储存和管理。当这些主体利用网络与银行系统进行支付结算时,就会产生数据如何转换的问题,如果数据以原始形式在网上流动,既降低了数据的传输速度,安全性也很难保证。而基于XML技术的电子商务系统可以解决上述存在的问题,从而可以保证数据在网络上的安全高效流动。
二、电子商务与XML的结合
整个电子商务过程涉及多个参与方,图1描述了电子商务的整个交易过程。
所以,由图1可以看出,整个交易过程存在下列问题:进行电子商务,就必须有网上电子支付的过程。在这个关键环节,就会涉及数据的流动、资金的转移问题,因此安全性是第一个必须考虑的问题,同时,不同的主体所需要的信息是不一样的,这就涉及到隐藏其他信息的技术;由于在网上进行支付,会涉及到不同的系统和平台,这就要求数据进行多次的转换,而且要保证数据的一致性。所以,关键环节如图2所示:
而XML技术具有的特点,完全可以解决上述的问题。
1.从数据形式上看,XML是纯字符串的文本格式,字符串在传递时是非常简单、快速、容易的。
2.便于检索电子商务数据:用户可以在电子商务的XML文档中定义一系列有意义的标记,在数据检索时可以方便地利用这些标记实现相关商务数据检索。
3.便于数据的多样显示:XML一个重要的特点是数据内容与显示形式完全分开。商务数据在网络上发布时,往往希望能够用多种方式显示,因此常采用HTML描述数据的外观,用XML描述数据本身,使数据更合理地按用户的需求表现出来。
4.XML是一个规范,具有平台无关性,而数据库和记录等对象都与特定的平台相关联,在现实中,数据库的平台是较多的,要求平台有内建的处理机制来处理对象的操作。通过使用XML文件,可以将多个不同平台的数据源的记录导入到同一个XML文件中去,在这些数据源中起到桥梁的作用。
如何实现在XML数据格式与电子商务各方数据库格式的转换,并使用XML加密技术保证电子商务活动中信息流动一致性与机密性,解决数据的安全高效流动问题,同时隐藏相关信息,这是本文的切入点。
三、关键技术的实现
1.XML与关系数据库的转换技术。
(1)XML数据向关系数据库的转换。把XML数据加载到关系数据库中,存在语义难题和技术难题。XML文档可分为两种:以数据为中心的XML文档和以文档为中心的XML文档,本文重点考虑对前者进行数据库的转换,具体方法是:把XML文档结构定义为一棵数据对象树,根据一定的规则要求,将文档的层次结构转化为树状结构,用对象关系映射方法将对象映射到关系数据库中。
(2)关系型数据向XML数据的转换。把数据库数据转换成XML文档时,只要把一个表或者查询的结果插入到XML文档的相应位置,生成XML字符串,通过直接生成XML字符串本身来进行转换。如下所示:
2.XML加密技术。电子商务交易中同时传输了两种信息:交易信息和支付信息,要保证这两种信息在传输过程中不能被无关的第三者阅读,包括商家不能看到其中的支付信息,银行不能看到其中的交易信息,就要求支付网关必须通过某种技术能实现对不同的对象实施信息隐藏即加密技术,信息在流动时对网关来说是透明的。下面是利用XML技术实现对订单和信用卡号信息的加密。
(1)要加密的样本XML文件(描述了顾客所买商品和支付工具的基本信息),名为payinfo.xml。
(2)加密的程序实现。
①创建一个XmlDocument对象,利用它的load方法装入要加密的XML文件名,这里为payinfo.xml,即:XmlDocument doc = new XmlDocument()。
②创建一个EncryptedXml对象,把A中的对象作为参数传递给它:
EncryptedXml exml = new EncrptedXml(doc);doc.load(“payinfo.xml”)。
③取得密钥GetNumberingKey(),把将要使用的密钥映射到它们相应的名称:RSA numberingKey = GetNumberingKey();exml.AddKeyNameMapping(“numbering”,numberingKey)。
④取得要加密的节点元素:
XmlNodeList nodelist=doc.GetElementsByTagName(‘paytool’);
XmlElement numberElement = XmlElement(nodelist[0])。
⑤调用EncryedData来进行加密,生成加密数据。EncryptedData encryptedNeedEncrypt=exml.Encrypt(numberElement,“numbering”)。
⑥将原始XML文档的为加密部分换为新的加密数据。EncryptedXml.ReplaceElement(numberElement,encrytedNeedEncrypt,true)。
(3)应用上面的程序代码,对payinfo.xml整个文档进行加密,生成的xml文件如下:
总之,XML加密在网络数据安全交换中发挥着越来越重要的作用。XML加密为需要结构化数据安全交换的应用程序提供了一种端到端安全性,可以满足应用程序对数据交换安全性的复杂需求。
四、总结语
随着电子商务的快速发展,网上支付对金融电子化提出了更高的要求。而XML技术直接面对Web数据,不仅可以很好地兼容原有的Web应用,而且可以更好的实现信息的共享与交换,在电子商务安全性方面发挥了独有的优势,在今后的不断发展中,二者的结合会更深更紧密。(文/孙海霞 程光胜 )