Получение ключа на основе MD5 и шифрование RC4. Действительно? Пример создан в 2018? Microsoft должно быть стыдно за себя. Я не вижу этот 1024-битный ключ, я вижу 128-битный ключ, созданный на основе вышеупомянутого шифрования MD5 и PKCS#1 RSA. Что касается размера ключа, «Размеры сеансового ключа можно установить при генерации ключа. Размер ключа, представляющий длину модуля ключа в битах, устанавливается старшими 16 битами этого параметра. Таким образом, если Необходимо сгенерировать 128-битный сеансовый ключ RC4, значение 0x00800000
сочетается с любым другим dwFlags
предопределенное значение с операцией побитового ИЛИ».
RC4 относительно сломан, так как сгенерированный поток ключей смещен, AES с аппаратным ускорением должен быть более безопасным при правильном использовании. Вы хотите использовать OAEP и режим аутентификации, такой как GCM (но удачи в поиске примера). Ах да, и «каждый из этих CSP имеет 128-битную длину симметричного ключа по умолчанию для RC2 и RC4 и 1024-битную длину ключа по умолчанию для алгоритмов с открытым ключом». Вы должны стремиться как минимум к 2048 битам и, если возможно, к 4096 битам; последний должен дать вам более 128-битную безопасность.
В следующем году все криптовалюте, которую вы видите на этой странице, исполнится 30 лет. Современная криптография существует со времен Шеннона (1949 г.), когда начался большой бум в семидесятых годах, около 50 лет назад. Нет 1024-битного RC4, есть только 128-битный RC4. Ключ RSA слишком мал, используя 1024 бита, и, пожалуйста, даже не думайте копировать этот метод получения ключа для пароля.
Код также плохо структурирован; единственная вещь, которую вы можете узнать из этого, — это вызовы криптографической библиотеки и способ, которым вы можете постепенно зашифровать файл, а не делать все это за один раз.