2013-05-27 145 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组件执行它。