Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
RSA — Bibliothèque Rust pure pour la cryptographie à clé publique RSA : génération de clés, chiffrement/déchiffrement PKCS#1 v1.5 et OAEP, signatures PSS, ainsi que l'import/export de clés. | Kitploit
Outils/GitHubGitHub/rustcrypto/rsa
Outils de Chiffrement/DéchiffrementCryptographieAuthentificationTop en Cryptographie n°19Top en Outils de Chiffrement/Déchiffrement n°20
GitHubrustcrypto/rsa

RSA

Bibliothèque Rust pure pour la cryptographie à clé publique RSA : génération de clés, chiffrement/déchiffrement PKCS#1 v1.5 et OAEP, signatures PSS, ainsi que l'import/export de clés.

Voir le dépôt
67319272il y a 4 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

RustCrypto: RSA

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

Une implémentation portable de RSA en Rust pur.

Exemple

use rsa::{Pkcs1v15Encrypt, RsaPrivateKey, RsaPublicKey};

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, Pkcs1v15Encrypt, &data[..]).expect("failed to encrypt");
assert_ne!(&data[..], &enc_data[..]);

// Decrypt
let dec_data = priv_key.decrypt(Pkcs1v15Encrypt, &enc_data).expect("failed to decrypt");
assert_eq!(&data[..], &dec_data[..]);

Remarque : Si vous rencontrez un temps de génération de clés inhabituellement lent lors de l'utilisation de RsaPrivateKey::new, vous pouvez essayer de compiler en mode release ou d'ajouter ce qui suit à votre Cargo.toml. La génération de clés est beaucoup plus rapide lorsque la compilation est effectuée avec des niveaux d'optimisation plus élevés, mais cela augmentera un peu le temps de compilation.

[profile.debug]
opt-level = 3

Statut

Actuellement à la phase 1 (v) 🚧

Il y aura trois phases avant que 1.0 🚢 puisse être publiée.

  1. 🚧 Le faire fonctionner
    • Génération de nombres premiers ✅
    • Génération de clés ✅
    • PKCS1v1.5 : chiffrement et déchiffrement ✅
    • PKCS1v1.5 : signature et vérification ✅
    • PKCS1v1.5 (clé de session) : chiffrement et déchiffrement
    • OAEP : chiffrement et déchiffrement
    • PSS : signature et vérification
    • Import et export de clés
  2. 🚀 Le rendre rapide
    • Benchmarks ✅
    • comparer aux autres implémentations 🚧
    • optimiser 🚧
  3. 🔐 Le rendre sécurisé
    • Tests de fuzz
    • Audits de sécurité

⚠️Avertissement de sécurité

Cette crate a fait l'objet d'un audit de sécurité par Include Security, avec une seule constatation mineure qui a depuis été corrigée.

Consultez les [problèmes de sécurité ouverts] sur notre suivi de problèmes pour d'autres problèmes connus.

Notamment, l'implémentation de l'[exponentiation modulaire n'est pas à temps constant], mais la variabilité temporelle est masquée à l'aide d'[aveuglement aléatoire], une technique couramment utilisée. Cette crate est vulnérable à l'[attaque Marvin] qui pourrait permettre la récupération de la clé privée par un attaquant réseau (voir RUSTSEC-2023-0071).

Vous pouvez suivre notre travail sur l'atténuation de ce problème dans #390.

Version minimale de Rust prise en charge (MSRV)

Cette crate prend en charge Rust 1.85 ou supérieur.

À l'avenir, la MSRV peut être modifiée, mais cela se fera avec un changement de version mineure.

Licence

Sous l'une ou l'autre des licences suivantes :

  • Apache License, Version 2.0
  • MIT license

à votre convenance.

Contribution

Sauf indication contraire explicite de votre part, toute contribution intentionnellement soumise pour inclusion dans l'œuvre par vous, telle que définie par la licence Apache-2.0, sera sous double licence comme ci-dessus, sans conditions ni termes supplémentaires.

Télécharger l’outil