呼叫

2016-06-08 121 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我没有得到加密 –