如何: 從 Visual Basic 呼叫 Visual Basic.NET 類別庫,以在 Microsoft Office 應用程式

文章翻譯 文章翻譯
文章編號: 317535 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

結論

若要從 Visual Basic 呼叫.NET 類別庫應用程式使用此逐步教學指南。這個範例會示範 VB 應用程式程式如何使用 Visual Basic.NET 類別庫來加密和解密字串。您可以使用包含在 [.NET 之密碼編譯命名空間 Framework 的加密/解密。

建立 Visual Basic.NET 類別庫

  1. 啟動 Microsoft Visual Studio.NET。在 [檔案] 功能表上指向 [新增],然後按一下 [專案]。在 Visual Basic 專案 下, 選取 [類別庫]。命名類別 CryptoClass,然後按一下 [確定]。預設會建立類別 1。
  2. 類別 1 的內容取代下列程式碼:

    Imports System.Security.Cryptography
    
    <ComClass(Class1.ClassId, Class1.InterfaceId, Class1.EventsId)> Public Class Class1
        Public Const ClassId As String = "98349785-8BE2-4604-848D-F5B103D61715"
        Public Const InterfaceId As String = "36613EE9-125F-493d-9968-771E18C2226A"
        Public Const EventsId As String = "A036F02F-F87E-4548-A536-7DD7EA8E62B5"
    
        Const sKey As String = "MyKey"
    
        Public Function EncryptTripleDES(ByVal sIn As String) As String
            Dim DES As New TripleDESCryptoServiceProvider()
            Dim hashMD5 As New MD5CryptoServiceProvider()
    
            ' Compute the MD5 hash.
            DES.Key = hashMD5.ComputeHash(System.Text.ASCIIEncoding.ASCII.GetBytes(sKey))
            ' Set the cipher mode.
            DES.Mode = CipherMode.ECB
            ' Create the encryptor.
            Dim DESEncrypt As ICryptoTransform = DES.CreateEncryptor()
            ' Get a byte array of the string.
            Dim Buffer As Byte() = System.Text.ASCIIEncoding.ASCII.GetBytes(sIn)
            ' Transform and return the string.
            Return Convert.ToBase64String(DESEncrypt.TransformFinalBlock(Buffer, 0, Buffer.Length))
        End Function
    
        Public Function DecryptTripleDES(ByVal sOut As String) As String
            Dim DES As New TripleDESCryptoServiceProvider()
            Dim hashMD5 As New MD5CryptoServiceProvider()
    
            ' Compute the MD5 hash.
            DES.Key = hashMD5.ComputeHash(System.Text.ASCIIEncoding.ASCII.GetBytes(sKey))
            ' Set the cipher mode.
            DES.Mode = CipherMode.ECB
            ' Create the decryptor.
            Dim DESDecrypt As ICryptoTransform = DES.CreateDecryptor()
            Dim Buffer As Byte() = Convert.FromBase64String(sOut)
            ' Transform and return the string.
            Return System.Text.ASCIIEncoding.ASCII.GetString(DESDecrypt.TransformFinalBlock(Buffer, 0, Buffer.Length))
        End Function
    End Class
    						

    附註您可以使用 GUID 產生器來產生新的 GUID ClassId、 InterfaceId,和 EventsId。若要產生新的 GUID,按一下 [工具] 功能表上的 [建立 GUID]。
  3. 專案屬性,選取 [組態屬性]。按一下 [建置],然後選取 [註冊 COM Interop] 核取方塊。按一下 [確定]
  4. 按一下 [建置] 功能表來建立該 DLL 的 建置方案

建立應用程式的巨集的一個 Visual Basic 來呼叫.NET 類別庫

  1. 啟動 Microsoft Excel。按下 ALT + F11 即可啟動 [Visual Basic 編輯器]。
  2. 按一下 [插入] 功能表上的 [模組 以插入空白的模組。
  3. 按一下 [工具] 功能表 引用項目。新增 CryptoClass 程式庫的參考,然後按一下 [確定]
  4. 輸入或貼上下列程式碼在 [Module1] 程式碼視窗中:
    Sub TestCrypto()
      Dim oCrypto As New CryptoClass.Class1
      Dim sCrypt As String
      
      sCrypt = oCrypto.EncryptTripleDES("This is a test")
      MsgBox "Encrypted text = " & sCrypt
      MsgBox "Decrypted text = " & oCrypto.DecryptTripleDES(sCrypt)
    End Sub
    					

測試程式碼

  1. 按一下 [工具] 功能表 巨集。巨集清單中, 按一下 TestCrypto,然後按一下 [執行]。
  2. 如果訊息方塊出現並顯示加密的字串,按一下 [確定]。第二個訊息方塊出現並顯示已解密的字串。
  3. 如果需要在執行.NET Framework 的其他電腦上註冊類別程式庫,將 DLL 複製到系統並執行下列命令:
    regasm CryptoClass.dll /tlb:CryptoClass.tlb

?考

如需詳細資訊按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
301070如何: 加密和解密檔案,藉由使用 Visual Basic.NET
如需詳細資訊請參閱下列 Microsoft 開發人員網路 (MSDN) 網站]:
http://msdn2.microsoft.com/en-us/library/aa188489(office.10).aspx

屬性

文章編號: 317535 - 上次校閱: 2007年3月29日 - 版次: 8.5
這篇文章中的資訊適用於:
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Office PowerPoint 2003
  • Microsoft PowerPoint 2002 Standard Edition
  • Microsoft Office Word 2003
  • Microsoft Visual Studio .NET 2003 專業版
  • Microsoft Word 2002 Standard Edition
  • Microsoft Visual Studio .NET 2002 Professional Edition
關鍵字:?
kbmt kbcrypt kbsecurity kbhowtomaster KB317535 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:317535
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com