CAPICOM Decrypt () с ошибкой "встретилось неверное значение тега ASN1" - PullRequest
0 голосов
/ 13 февраля 2010

У меня есть большой объем данных, зашифрованных с помощью библиотеки CAPICOM через наши устаревшие приложения VB6.

Мне нужно получить доступ к этим данным из приложения .Net 3.5, но я получаю сообщение об ошибке: «Значение недопустимого тега ASN1 встретилось» при вызове метода Decrypt. Google мало помог в поиске приличных примеров кода или объяснений того, что означает эта ошибка.

Следующий код почти точно повторяет то, что происходило в коде 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;
}

1 Ответ

3 голосов
/ 16 февраля 2010

Когда я получил эту ошибку, это произошло потому, что я использовал неправильный ключ для расшифровки. Вы проверили кодировку вашего secretKey? Я подозреваю, что данные были зашифрованы строкой ANSI в VB6, и вы используете строку Unicode в своем новом коде.

...