加密的XML (轉)
在加密的XML (EXML) 例子中,我只了一個簡單的contacts.xml 。在這個例子中大多數的關聯 檔案都很簡單,在下表中做一個簡要介紹。我將集中介紹2個,他們用來訪問EXML 函式。 它們是OpenEXML()和 SaveEXML(), 在lib_exml.asp 包含檔案中(如果是在產品商業環境中使用的話,應該被放在一個COM中)。
檔名描述 Addcontact.asp 這個檔案用來向 EXML檔案中增加新的聯絡。 Contacts.xml 這個文件用來儲存聯絡資料,作為一個加密的檔案儲存在器上。 Contacts. 這個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 succesul 'Returns xml in xmldom parameter 'Takes filepath as a relative path to the encrypted XML file 'Takes pass as the password to use to decrypt the EXML file Function OpenEXML(xmldom, filepath, password) Dim CM Dim Context Dim key Dim objXML Dim obj Dim clearfile Dim strResult 'Instantiate Objects Set CM = Server.CreateObject("Persits.CryptoManager") Set Context = CM.OpenContext("mycontainer", True) Set objXML = Server.CreateObject(".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位的密碼系統,如果你的機器上了適當的,那麼你可以使用更強大的密碼系統。簡單地說,如果你有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.
" strResult = strResult & Err.Number & ": " & Err.Description & "
" Exit Function End If 'Delete the decrypted file objFSO.DeleteFile clearfile, True If Err.Number <> 0 Then strResult = strResult & "Cannot delete file '" & clearfile _ & "'" & "
" strResult = strResult & Err.Number & ": " & Err.Description & "
" 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 & "
" End If Set xmldom = objXML OpenEXML = strResult End Function
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-988487/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- PHP xml 轉陣列 陣列轉 xml 操作PHPXML陣列
- xml字串轉JSON字串XML字串JSON
- C# 操作xml(轉)C#XML
- xml與陣列的相互轉換——phpXML陣列PHP
- Java 將HTML轉為XMLJavaHTMLXML
- 快速將log4j.xml轉換為logback.xmlXML
- 學習 XSLT:XML文件轉換的關鍵XML
- php陣列如何轉換為xml的形式?PHP陣列XML
- C# 將HTML轉為XMLC#HTMLXML
- C# 將Excel轉為XMLC#ExcelXML
- java 物件與xml相互轉換Java物件XML
- XML轉化為json工具類XMLJSON
- 玩轉混合加密加密
- sap 內錶轉xml,類的使用if_ixml_elementXML
- ORACLE資料加密(轉)Oracle加密
- XML::Smart是個該死的東西,費死時間了,開始轉向XML::SimpleXML
- Mybatis xml特殊符號轉義寫法MyBatisXML符號
- Python將xml格式轉換為json格式PythonXMLJSON
- 攻防世界-轉輪機加密加密
- Java中將XML轉換為PDF的兩種辦法JavaXML
- ABAP和XML資料格式互相轉換的兩種方式XML
- simplexml_load_string 將xml轉換成物件XML物件
- Java學習--xml文字轉換成Java物件JavaXML物件
- DOM4J 解析 XML 之忽略轉義字元XML字元
- (轉)Go加密演算法總結Go加密演算法
- IDEA如何使mapper直接跳轉到xml,超實用IdeaAPPXML
- C# Rsa加密(私鑰加密、公鑰解密、金鑰格式轉換、支援超大長度分段加密)C#加密解密
- Spring | xx-servlet.xml 和 applicationContext.xml 的區別SpringServletXMLAPPContext
- XMLXML
- 基於XML的DIXML
- spark的pom.xmlSparkXML
- 都 2021 年了,竟然有人搞大資料時忽略 JSON 而去研究用 C# 把 XML 轉換為 XML 的技術大資料JSONC#XML
- netcore AES同等效轉java語言 加密方法NetCoreJava加密
- 使用CBC位元反轉攻擊繞過加密的會話令牌加密會話
- MyEclipse - 在開啟的xml檔案中,Ctrl+左鍵 不定位跳轉的問題EclipseXML
- 使用FOR XML AUTO控制XML輸出KHXML
- XML和JSON的介紹XMLJSON
- xml操作的幾種方法XML
- Mapper.xml中的trimAPPXML