DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> XML學習教程 >> XML基礎 >> 加密的XML
加密的XML
編輯: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

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved