2013-05-27 100 views
1

我使用ChilkatCrypt2在VB6中進行了加密。現在在.NET中,我想使用System.Security.Cryptography。將加密從VB6轉換爲.NET

我用:

Public Function Encripta(pTexto As String, pChave As String, pModo As Byte) As String 
    Dim vMD5 As New ChilkatCrypt2 
    vMD5.UnlockComponent "..................." 
    vMD5.Charset = "utf-8" 
    vMD5.KeyLength = 128 
    vMD5.CryptAlgorithm = "rijndael" 
    vMD5.SecretKey = vMD5.GenerateSecretKey(pChave) 
    vMD5.EncodingMode = "hex" 
    If pModo = 1 Then 
     Encripta = vMD5.EncryptStringENC(pTexto) 
    Else 
     Encripta = vMD5.DecryptStringENC(pTexto) 
    End If 
    Set vMD5 = Nothing 
End Function 

誰能幫我改寫這個在.NET(VB或C#),使現有的加密解密值正確。我無法弄清楚參數等價。

+0

互操作性將取決於'GenerateSecretKey'的披露和可移植性,是否記錄在案? –

+0

嗨Alex,GenerateSecretKey(str As String)As Variant將字符串散列到與KeyLength屬性的當前值具有相同位數的字節數組。例如,如果KeyLength等於128位,則返回一個16字節的數組。這可以用來設置SecretKey屬性。爲了解密,SecretKey必須完全匹配。要使用「基於密碼的」加密,密碼將傳遞給此方法以生成二進制密鑰,然後可以將其分配給SecretKey屬性。 – user1241433

+0

http://www.chilkatsoft.com/refdoc/xChilkatCrypt2Ref.html – user1241433

回答

0

這就像jac說。
注意:.NET組件執行它。