Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
RSA — Чистая библиотека на Rust для криптографии с открытым ключом RSA: генерация ключей, шифрование/расшифровка PKCS#1 v1.5 и OAEP, подписи PSS, а также импорт/экспорт ключей. | Kitploit
Инструменты/GitHubGitHub/rustcrypto/rsa
Инструменты шифрования/дешифрованияКриптографияАутентификацияТоп в Криптография №19Топ в Инструменты шифрования/дешифрования №20
GitHubrustcrypto/rsa

RSA

Чистая библиотека на Rust для криптографии с открытым ключом RSA: генерация ключей, шифрование/расшифровка PKCS#1 v1.5 и OAEP, подписи PSS, а также импорт/экспорт ключей.

Репозиторий
672194884 дней назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

RustCrypto: RSA

crates.io Documentation Build Status Dependency Status Apache2/MIT licensed MSRV Project Chat

Портируемая реализация RSA на чистом Rust со схемами шифрования и подписи, определёнными в PKCS#1 v2.2 (RFC8017).

СхемаНазначениеСпецификация
RSAES-OAEPШифрованиеRFC8017 §7.1
RSAES-PKCS1-v1_5ШифрованиеRFC8017 §7.2
RSASSA-PSSПодписиRFC8017 §8.1
RSASSA-PKCS1-v1_5ПодписиRFC8017 §8.2

Шифрование PKCS#1 v1.5 предоставляется только для совместимости с устаревшими приложениями. Для новых приложений шифрования предпочтительны OAEP и PSS.

Известные уязвимости реализации см. в предупреждении о безопасности ниже.

Пример

use rsa::{Oaep, RsaPrivateKey, RsaPublicKey};
use sha2::Sha256;

let mut rng = rand::rng();
let bits = 2048;
let priv_key = RsaPrivateKey::new(&mut rng, bits).expect("failed to generate a key");
let pub_key = RsaPublicKey::from(&priv_key);

// Encrypt
let data = b"hello world";
let enc_data = pub_key.encrypt(&mut rng, Oaep::<Sha256>::new(), &data[..]).expect("failed to encrypt");
assert_ne!(&data[..], &enc_data[..]);

// Decrypt
let dec_data = priv_key.decrypt_blinded(&mut rng, Oaep::<Sha256>::new(), &enc_data).expect("failed to decrypt");
assert_eq!(&data[..], &dec_data[..]);

Примечание: Если при использовании RsaPrivateKey::new вы столкнулись с необычно долгой генерацией ключа, попробуйте скомпилировать в режиме release или добавить следующее в ваш Cargo.toml. Генерация ключа происходит гораздо быстрее при сборке с более высокими уровнями оптимизации, но это немного увеличит время компиляции.

[profile.debug]
opt-level = 3

Статус

В настоящее время на Фазе 1 (v) 🚧

До выпуска 1.0 🚢 будет три фазы.

  1. 🚧 Заставить работать
    • Генерация простых чисел ✅
    • Генерация ключей ✅
    • PKCS1v1.5: Шифрование и дешифрование ✅
    • PKCS1v1.5: Подпись и проверка ✅
    • PKCS1v1.5 (сессионный ключ): Шифрование и дешифрование
    • OAEP: Шифрование и дешифрование
    • PSS: Подпись и проверка
    • Импорт и экспорт ключей
  2. 🚀 Сделать быстрым
    • Бенчмарки ✅
    • сравнение с другими реализациями 🚧
    • оптимизация 🚧
  3. 🔐 Сделать безопасным
    • Фаззинг-тестирование
    • Аудит безопасности

⚠️Предупреждение о безопасности

Этот крейт прошёл один аудит безопасности от Include Security, в ходе которого было найдено лишь одно незначительное замечание, которое с тех пор было устранено.

Смотрите [открытые вопросы безопасности] в нашем трекере задач для получения информации о других известных проблемах.

В частности, реализация [модульного возведения в степень не является константной по времени], но вариативность времени маскируется с помощью [случайного ослепления], широко используемой техники. Этот крейт уязвим к Marvin Attack, что может позволить сетевому злоумышленнику восстановить закрытый ключ (см. RUSTSEC-2023-0071).

Вы можете следить за нашей работой по устранению этой проблемы в #390.

Минимальная поддерживаемая версия Rust (MSRV)

Этот крейт поддерживает Rust 1.85 или выше.

В будущем MSRV может быть изменена, но это будет сделано с повышением минорной версии.

Лицензия

Лицензировано под любой из

  • Apache License, Version 2.0
  • MIT license

на ваш выбор.

Вклад

Если вы явно не заявите иное, любой вклад, намеренно представленный вами для включения в работу, как определено в лицензии Apache-2.0, будет двойным образом лицензирован, как указано выше, без каких-либо дополнительных условий или положений.

Скачать инструмент