我通过传统的VB6应用程序使用CAPICOM库加密了大量数据。
我需要从.Net 3.5应用程序访问此数据,但在调用Decrypt方法时出现错误:“ASN1错误标记值已满足”。谷歌在追踪合适的代码样本或解释这个错误意味着什么方面一直没什么帮助。
以下代码几乎完全是对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;
}
答案 0 :(得分:3)
当我收到此错误时,原因是我使用了错误的密钥进行解密。你检查过secretKey的编码吗?我怀疑数据是用VB6中的ANSI字符串加密的,而你在新代码中使用的是Unicode字符串。