| Предыдущий | Следующий |
| NTE_BAD_LEN | NTE_BAD_SIGNATURE |
NTE_BAD_DATA
NTE_BAD_DATA (0x80090005) — ошибка поставщика CryptoAPI, точный смысл которой зависит от вернувшего её API. При расшифровании она обычно указывает на шифротекст, который невозможно обработать с переданным ключом и параметрами, например из-за неверного заполнения или недопустимой длины блока.
Типичные причины при расшифровании
При использовании CryptDecryptдлина входных данных блочного шифра должна быть кратна размеру блока, если вызов не является последней частью потока. Windows также может вернуть эту ошибку при неверном заполнении. Обрезанный шифротекст, несовпадающий ключ или алгоритм и неправильное разбиение потоковых данных могут приводить к одному результату.
Что проверить
- Сохраняйте точную последовательность и длину зашифрованных байтов; не пропускайте двоичные данные через текстовые кодировки.
- Убедитесь, что при шифровании и расшифровании согласованы алгоритм, ключ, режим, заполнение и обработка вектора инициализации.
- В потоковой обработке помечайте как последний только заключительный блок и сохраняйте одно криптографическое состояние между предыдущими блоками.
- До доказательства обратного рассматривайте это как нарушение целостности или несовпадение протокола, а не как повод многократно повторять обработку тех же недопустимых данных.
См. документацию Microsoft по CryptDecrypt.
Нужно найти другой код? Найти другой код состояния или ошибки.