Если что-то хорошее для использования, зависит от контекста.
Если вам нужно передать комбинацию имени пользователя и пароля, тогда действительно может использоваться шифрование RSA, предпочтительно в дополнение к безопасности транспорта TLS для соединения.Если вам просто нужно подтвердить имя пользователя или пароль, вам может понадобиться хэш пароля (или PBKDF).Версию .NET PBKDF2 можно найти в этом плохо названном классе .
Даже если все криптографические алгоритмы безопасны, ваша система все еще может быть не защищена.Например, если вы не можете доверять общедоступному ключу, который вы шифруете, то вы можете шифровать его с помощью открытого ключа злоумышленника.
Таким образом, ваш код использует этот конкретный вызов шифрования с использованием логического значения для выбора алгоритма шифрования.Поскольку логическое значение установлено на true
, это означает, что используется RSA с OAEP, используя внутреннюю хеш-функцию SHA-1 (которая безопасна для шифрования OAEP, даже если SHA-1 нет).Лучше использовать более новый вызов , где вы можете указать заполнение без логического анти-паттерна.В этом случае вы также можете указать используемую внутреннюю хеш-функцию.
RSA с OAEP указывается в PKCS # 1 v2.2, который в свою очередь указывается в RFC 8017 .Это даже будет указывать порядок байтов, который будет использоваться (RSA работает с числами в конце, которые могут быть закодированы в байтах по-разному).Пока вы используете совместимую библиотеку в любой среде выполнения и знаете, как кодировать / декодировать открытый текст и зашифрованный текст (при использовании текста), вы сможете дешифровать , используя любую среду выполнения, в которой реализуется RSA сOAEP , если у вас есть соответствующий закрытый ключ, конечно.