分享
 
 
 

加密的XML

王朝other·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

加密的XML

在加密的XML (EXML) 例子中,我只了一个简单的contacts.xml 文件。在这个例子中大多数的关联 文件都很简单,在下表中做一个简要介绍。我将集中介绍2个ASP函数,他们用来访问EXML 函数。 它们是OpenEXML()和 SaveEXML(), 存储在lib_exml.asp 包含文件中(如果是在产品商业环境中使用的话,应该被放在一个COM组件中)。

文件名

描述

Addcontact.asp

这个文件用来向 EXML文件中增加新的联系。

Contacts.xml

这个文档用来存储联系数据,作为一个加密的文件存储在硬盘驱动器上。

Contacts.xsl

这个stylesheet被listcontacts.asp用来显示contacts.xml的内容。

Default.asp

是一个简单的HTML文件,有到addcontact.asp和listcontacts.asp的链接。

Lib_exml.asp

一个ASP包含文件,包含用来存取加密XML文档的两个函数,被addcontact.asp 和listcontacts.asp所包含。

Listcontacts.asp

一个简单的 ASP页面,用来显示contacts.xml的内容。

Addcontact.asp和listcontact.asp中都包括相当数量的与XML相关的代码,用来存取和读contacts.xml文档。

Lib_exml.asp包含这个应用程序使用的两个关键函数,它们是OpenEXML()和 SaveEXML()。这里列出它们的详细内容。

OpenEXML()

首先声明函数,用dim声明变量,并例示我们需要的对象:

'Returns strResult as String, "" if successful

'Returns xmldom object in xmldom parameter

'Takes filepath as a relative path to the encrypted XML file

'Takes password as the password to use to decrypt the EXML file

Function OpenEXML(xmldom, filepath, password)

Dim CM

Dim Context

Dim key

Dim objXML

Dim objFSO

Dim clearfile

Dim strResult

'Instantiate Objects

Set CM = Server.CreateObject("Persits.CryptoManager")

Set Context = CM.OpenContext("mycontainer", True)

Set objXML = Server.CreateObject("Microsoft.XMLDOM")

Set objFSO = Server.CreateObject("Scripting.FileSystemObject")

然后,我们将提供的文件名解密到一个临时文件中,这个文件在最后将要删除。注意由于系统上有这个明码文件,即使很简短,我们的系统安全也有了一个漏洞。在样本应用程序中的这些函数的目的是概念上的一个安全保证,但并不是一个完全的安全文件管理应用程序。

strResult = ""

clearfile = Server.MapPath(filepath & ".clear")

'Get cryptographic key

Set key = Context.GenerateKeyFromPassword(password, calgSHA, calgRC4, 40)

key.DecryptFile Server.MapPath(filepath), clearfile

现在我们正在使用40位的密码系统,如果你的机器上安装了适当的API,那么你可以使用更强大的密码系统。简单地说,如果你有IE的128位安全升级,你就可以通过AspEncrypt使用128位的密码 系统。

存储了加密文件后,我们用标准XMLDOM 代码打开它,处理差错然后删除解密的文件:

'Processor should validate this document

objXML.validateOnParse=True

objXML.async = false

'Load the decrypted file into an XML Document

objXML.load clearfile

If Err.Number <> 0 Then

strResult = strResult & "Error loading " & clearfile _

& " into XML object.<BR>"

strResult = strResult & Err.Number & ": " & Err.Description & "<BR>"

Exit Function

End If

'Delete the decrypted file

objFSO.DeleteFile clearfile, True

If Err.Number <> 0 Then

strResult = strResult & "Cannot delete file '" & clearfile _

& "'" & "<BR>"

strResult = strResult & Err.Number & ": " & Err.Description & "<BR>"

Exit Function

End If

最后,我们清除对象,结束函数。XML文档在xmldom 参数中被返回调用它的程序。如果有错误,就作为函数的返回字符串报告,如果操作成功的话这个字符串是个空字符串。

'Clean up objects

Set CM = Nothing

Set Context = Nothing

Set Key = Nothing

Set objFSO = Nothing

If Err <> 0 Then

strResult = strResult & Err.Number & ": " & Err.Description & "<BR>"

End If

Set xmldom = objXML

OpenEXML = strResult

End Function

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有