呼叫

2016-06-08 206 views
-1

好傢伙需要幫助,我有一些代碼的md5做隱窩,現在解密此代碼,我把它放在模塊,需要從形式叫我怎麼能做到這一點(vb.net)呼叫

Imports System.Security.Cryptography 
Imports System.Text 

Module Crypt 
    Public Function Encrypt(ByVal toEncrypt As String, ByVal key As String, ByVal useHashing As Boolean) As String 
     Dim keyArray As Byte() 
     Dim toEncryptArray As Byte() = UTF8Encoding.UTF8.GetBytes(toEncrypt) 

     If useHashing = True Then 
      Dim hashmd5 As New MD5CryptoServiceProvider() 
      keyArray = hashmd5.ComputeHash(UTF8Encoding.UTF8.GetBytes(key)) 
     Else 
      keyArray = UTF8Encoding.UTF8.GetBytes(key) 
     End If 

     Dim tdes As New TripleDESCryptoServiceProvider() 
     tdes.Key = keyArray 
     tdes.Mode = CipherMode.ECB 
     tdes.Padding = PaddingMode.PKCS7 

     Dim cTransform As ICryptoTransform = tdes.CreateEncryptor() 
     Dim resultArray As Byte() = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length) 

     Return (Convert.ToBase64String(resultArray, 0, resultArray.Length)) 
    End Function 
    Public Function Decrypt(ByVal toDecrypt As String, ByVal key As String, ByVal useHashing As Boolean) As String 
     Dim keyArray As Byte() 
     Dim toEncryptArray As Byte() = Convert.FromBase64String(toDecrypt) 

     If useHashing = True Then 
      Dim hashmd5 As New MD5CryptoServiceProvider() 
      keyArray = hashmd5.ComputeHash(UTF8Encoding.UTF8.GetBytes(key)) 
     Else 
      keyArray = UTF8Encoding.UTF8.GetBytes(key) 
     End If 

     Dim tdes As New TripleDESCryptoServiceProvider() 
     tdes.Key = keyArray 
     tdes.Mode = CipherMode.ECB 
     tdes.Padding = PaddingMode.PKCS7 

     Dim cTransform As ICryptoTransform = tdes.CreateDecryptor() 
     Dim resultArray As Byte() = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length) 

     Return UTF8Encoding.UTF8.GetString(resultArray) 
    End Function 
End Module 
+0

看起來你已經有一個模塊,所以你可以從任何地方調用'Encrypt'和'Decrypt' –

+0

我知道我有模塊,但我需要知道我怎麼打電話時,我打電話加密我得到錯誤「參數不是指定爲'Public Function Encrypt(toEncrypt As String,key As String,useHashing As Boolean)'作爲String'「的參數'key'。 「 –

回答

-2

模塊=靜態類

靜態=在vb.net共用

NotInheritable Class SecurityModule 

    Private Sub New() 

    End Sub 

    Public Shared Function Encrypt(parameters) As String 
     // Your implementation 
    End Function 

    Public Shared Function Decrypt(parameters) As String 
     // Your implementation 
    End Function 

End Class 

NotInheritable是等密封。共享就像靜態類的方法。

要調用

SecurityModule.Encrypt(...) 

希望這有助於!

+0

任何人都可以解釋反對的理由嗎? – Sami

+0

對不起薩米,但我不明白這個答案我把我的代碼在模塊中,我使form1和需要從按鈕調用函數加密 –

+0

我將我的代碼添加到類,並使此我解釋但不能打電話,當我寫SecurityModule。我得到了等於和ReferenceEquals我沒有得到加密 –