0

我通过我们的旧版 VB6 应用程序使用 CAPICOM 库加密了大量数据。

我需要从 .Net 3.5 应用程序访问这些数据,但在调用 Decrypt 方法时出现错误:“ASN1 bad tag value met”。谷歌在追踪体面的代码示例或对该错误含义的解释方面几乎没有帮助。

以下代码几乎完全复制了 VB6 代码中发生的情况:

static string DecryptEncryptedText(string encryptedText, string secretKey)
{
    var encryptedDataObj = new CAPICOM.EncryptedData();
    encryptedDataObj.SetSecret(secretKey, CAPICOM_SECRET_TYPE.CAPICOM_SECRET_PASSWORD);
    encryptedDataObj.Decrypt(encryptedText);
    return encryptedDataObj.Content;
}
4

1 回答 1

3

当我收到此错误时,是因为我使用了错误的密钥进行解密。您是否检查过您的密钥的编码?我怀疑数据是用 VB6 中的 ANSI 字符串加密的,而您在新代码中使用了 Unicode 字符串。

于 2010-02-16T03:59:03.027 回答