Имея только зашифрованные данные, нет возможности сообщить точно, но хорошим индикатором является проверка длины данных.
Все стандартные современные блок-шифры (AES, Blowfish, DES, Serpent, Twofish) имеют размеры блоков либо 64, либо 128 бит (соответственно 8 и 16 байт). Таким образом, если длина зашифрованных данных в байтах кратна 8, это, скорее всего, будет блочным шифрованием (у вас есть вероятность ошибки в 1 из 8). если он не кратен 8, вы можете быть уверены, что это не блочный шифр в режимах общего блока (в лучшем случае это блочный шифр, пытающийся эмулировать потоковый шифр, например, в режиме CFB).
Не забудьте исключить любые потенциальные заголовки файлов/поток, капельницы и т.д. Конечно, если у вас есть заголовок, вы можете проверить там первым, чтобы обнаружить, что шифровать он использует ...
Вероятно, вы также можете добавить, что длина является единственной метрикой, которая их отличает, потому что содержимое выглядит случайным для каждого типа современного шифрования (кроме ECB-режима). –
Спасибо! У меня есть ситуация, когда данные зашифрованного и открытого текста + VZyZlAHP6HAgoaPBrBz (зашифрованные) 378734493671000 (открытый текст) Любое предположение, какой метод шифрования используется (блок/поток)? – bhartay
@bhartay Тот факт, что зашифрованный текст имеет одинаковый размер открытого текста * и * длина 15, показывает нам, что это, несомненно, шифр потока (или блок-шифр, используемый в потоковом режиме, например, CFB, OFB или CTR) – goncalopp