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

Office 2003 支援已結束

Microsoft 於 2014 年 4 月 8 日結束對 Office 2003 的支援。此變更已影響您的軟體更新和安全性選項。 瞭解這對您的意義為何且如何持續受保護。

重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。

按一下這裡查看此文章的英文版本:317535
本文已封存。本文係以「現狀」提供且不會再更新。
結論
若要從 Visual Basic 呼叫.NET 類別庫應用程式使用此逐步教學指南。這個範例會示範 VB 應用程式程式如何使用 Visual Basic.NET 類別庫來加密和解密字串。您可以使用包含在 [.NET 之密碼編譯命名空間 Framework 的加密/解密。

back to the top

建立 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 FunctionEnd Class						

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

建立應用程式的巨集的一個 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					
back to the top

測試程式碼

  1. 按一下 [工具] 功能表 巨集。巨集清單中, 按一下 TestCrypto,然後按一下 [執行]。
  2. 如果訊息方塊出現並顯示加密的字串,按一下 [確定]。第二個訊息方塊出現並顯示已解密的字串。
  3. 如果需要在執行.NET Framework 的其他電腦上註冊類別程式庫,將 DLL 複製到系統並執行下列命令:
    regasm CryptoClass.dll /tlb:CryptoClass.tlb
back to the top
参考
如需詳細資訊按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
301070如何: 加密和解密檔案,藉由使用 Visual Basic.NET
如需詳細資訊請參閱下列 Microsoft 開發人員網路 (MSDN) 網站]:back to the top
密碼編譯 vba

警告:本文為自動翻譯

內容

文章識別碼:317535 - 最後檢閱時間:12/07/2015 08:53:53 - 修訂: 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

  • kbnosurvey kbarchive kbmt kbcrypt kbsecurity kbhowtomaster KB317535 KbMtzh
意見反應