Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
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é.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
AdvSim.Cryptography — Simple and sane cryptographic wrapper library. | Kitploit
Outils/GitHubGitHub/fuzzysecurity/advsim.cryptography
Encryption/Decryption ToolsCryptographyUtilities & FrameworksAuthentication
GitHubfuzzysecurity/advsim.cryptography

AdvSim.Cryptography

Simple and sane cryptographic wrapper library.

Voir le dépôt
335il y a 3 ansVé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

Release

AdvSim.Cryptography

Le package NuGet AdvSim.Cryptography contient un ensemble de fonctions d’encapsulation cryptographiques réutilisables, configurées avec des valeurs par défaut raisonnables et faciles à utiliser. Plus de détails sont disponibles sous les différentes sous-rubriques ci-dessous.

  • Symmetric
    • Key Material Generation
    • AES
    • Triple DES
    • RC4
    • RC2
    • Multi-Byte XOR
    • XTEA
  • Asymmetric
    • Elliptic-curve Diffie–Hellman (ECDH)
    • RSA
  • Windows Local
    • Entropy Generation
    • DPAPI Local Machine
    • DPAPI Current User
  • Miscellaneous
    • TOTP

NuGet Compatibility

Le package NuGet AdvSim.Cryptography prend en charge une grande variété de versions de .Net. En général, les fonctions incluses dans la bibliothèque offrent une bonne couverture des frameworks cibles. Lorsque certaines fonctions sont restreintes à des frameworks spécifiques, un badge a été ajouté pour mettre en évidence cette dépendance.

NuGet URL: https://www.nuget.org/packages/AdvSim.Cryptography

Key Material

Lorsque le matériel de clé est fourni dans le constructeur cryptographique, Rfc2898DeriveBytes est utilisé pour renvoyer des tableaux d’octets pseudo-aléatoires afin d’initialiser les opérations de chiffrement et de déchiffrement. Ces tableaux d’octets sont de haute qualité tout en garantissant que l’appel de la même fonction avec le même matériel de clé produira la même graine pseudo-aléatoire.

Usage

Symmetric

AES

Availability

Cette fonction prend un tableau d’octets et le chiffre ou le déchiffre à l’aide du matériel de clé fourni dans le constructeur. À la fin, elle renvoie un tableau d’octets.

root@kitploit:~
AES test = new AES("Lovecraft");
Byte[] bEncrypted = test.Encrypt(bTestData);
Byte[] bDecrypted = test.Decrypt(bEncrypted);

Triple DES

Availability

Cette fonction prend un tableau d’octets et le chiffre ou le déchiffre à l’aide du matériel de clé fourni dans le constructeur. À la fin, elle renvoie un tableau d’octets.

root@kitploit:~
TripleDES test = new TripleDES("Lovecraft");
Byte[] bEncrypted = test.Encrypt(bTestData);
Byte[] bDecrypted = test.Decrypt(bEncrypted);

RC4

Availability

Cette fonction prend un tableau d’octets et le chiffre ou le déchiffre à l’aide du matériel de clé fourni dans le constructeur. À la fin, elle renvoie un tableau d’octets.

root@kitploit:~
RC4 test = new RC4("Lovecraft");
Byte[] bEncrypted = test.Encrypt(bTestData);
Byte[] bDecrypted = test.Decrypt(bEncrypted);

RC2

Availability

Cette fonction prend un tableau d’octets et le chiffre ou le déchiffre à l’aide du matériel de clé fourni dans le constructeur. À la fin, elle renvoie un tableau d’octets.

root@kitploit:~
RC2 test = new RC2("Lovecraft");
Byte[] bEncrypted = test.Encrypt(bTestData);
Byte[] bDecrypted = test.Decrypt(bEncrypted);

Multi-Byte XOR

Availability

Cette fonction prend un tableau d’octets et le chiffre ou le déchiffre à l’aide du matériel de clé fourni dans le constructeur. À la fin, elle renvoie un tableau d’octets.

root@kitploit:~
MultiXOR test = new MultiXOR("Lovecraft");
Byte[] bEncrypted = test.Encrypt(bTestData);
Byte[] bDecrypted = test.Decrypt(bEncrypted);

XTEA

Availability

Cette fonction prend un tableau d’octets et le chiffre ou le déchiffre à l’aide du matériel de clé fourni dans le constructeur. À la fin, elle renvoie un tableau d’octets.

root@kitploit:~
XTEA test = new XTEA("Lovecraft");
Byte[] bEncrypted = test.Encrypt(bTestData);
Byte[] bDecrypted = test.Decrypt(bEncrypted);

Asymmetric

Elliptic-curve Diffie–Hellman (ECDH)

Availability Availability

Notez ici qu’en v2.0.0, ECDH est pris en charge sur toutes les versions de .Net disponibles dans le package NuGet. Cependant, en raison de décisions de conception .Net vraiment discutables, l’interopérabilité entre toutes les cibles prises en charge n’est pas triviale.

Par conséquent, il existe des différences d’implémentation entre Framework < .Net 4.7 et tout le reste. Les deux clients doivent appartenir au même groupe pour réussir un échange de clés. Si, par exemple, vous avez besoin qu’un client soit sur .Net 6 et un autre sur .Net 4.5.1, vous devez alors utiliser RSA à la place.

Pour mieux comprendre le versionnage de .Net, vous pouvez consulter la ressource suivante.

  • https://learn.microsoft.com/en-us/dotnet/framework/migration-guide/versions-and-dependencies

Usage

Framework < .Net 4.7

Ces cibles ne prennent en charge que nistP256 et peuvent utiliser la bibliothèque comme suit.

root@kitploit:~
// Initialize both clients
ECDH test1 = new ECDH();
ECDH test2 = new ECDH();

// Exchange public keys
Byte[] bPublic1 = test1.GetPublicKeyArray();
Byte[] bPublic2 = test2.GetPublicKeyArray();

// Derive
test1.DeriveSharedKey(bPublic2);
test2.DeriveSharedKey(bPublic1);

// Encrypt / Decrypt
Byte[] bEncrypted1 = test1.Encrypt(bTestData);
Byte[] bDecrypted2 = test2.Decrypt(bEncrypted1);

.Net 4.7+ || Standard 2.1 || .Net 6

Ces cibles prennent une courbe comme argument du constructeur.

root@kitploit:~
public enum ECCurveType  
{  
    brainpoolP160r1,  
    brainpoolP160t1,  
    brainpoolP192r1,  
    brainpoolP192t1,  
    brainpoolP224r1,  
    brainpoolP224t1,  
    brainpoolP256r1,  
    brainpoolP256t1,  
    brainpoolP320r1,  
    brainpoolP320t1,  
    brainpoolP384r1,  
    brainpoolP384t1,  
    brainpoolP512r1,  
    brainpoolP512t1,  
    nistP256,  
    nistP384,  
    nistP521  
}

L’utilisation est présentée ci-dessous.

root@kitploit:~
// Initialize both clients
ECDH test1 = new ECDH(ECDH.ECCurveType.nistP521);
ECDH test2 = new ECDH(ECDH.ECCurveType.nistP521);

// Exchange public keys
Byte[] bPublic1 = test1.GetPublicKeyArray();
Byte[] bPublic2 = test2.GetPublicKeyArray();

// Derive
test1.DeriveSharedKey(bPublic2);
test2.DeriveSharedKey(bPublic1);

// Encrypt / Decrypt
Byte[] bEncrypted1 = test1.Encrypt(bTestData);
Byte[] bDecrypted2 = test2.Decrypt(bEncrypted1);

RSA

Availability

Notez que cette fonctionnalité ne nécessite pas obligatoirement deux clients, car les clés publiques n’ont pas à être échangées pour dériver un secret partagé comme c’est le cas pour ECDH. Bien sûr, comme ci-dessus, vous pouvez envoyer votre clé publique sur le réseau à un autre client qui peut ensuite chiffrer des données que vous seul pouvez déchiffrer.

Usage

root@kitploit:~
RSA test = new RSA();
Byte[] bPublicKey = test.GetPublicKeyArray();
Byte[] bEncrypted = test.Encrypt(bPublicKey, bTestData);
Byte[] bDecrypted = test.Decrypt(bEncrypted);

Windows Local

DPAPI Local Machine

Availability

Les données chiffrées et déchiffrées sont limitées à la machine. Les données ne peuvent pas être déchiffrées hors de l’hôte.

root@kitploit:~
// Without entropy
DPAPI test = new DPAPI();
Byte[] bEncrypted = test.EncryptUserDPAPI(bTestData);
Byte[] bDecrypted = test.DecryptUserDPAPI(bEncrypted);

// With entropy
DPAPI test = new DPAPI("Lovecraft");
Byte[] bEncrypted = test.EncryptUserDPAPI(bTestData);
Byte[] bDecrypted = test.DecryptUserDPAPI(bEncrypted);

DPAPI Current User

Availability

Les données chiffrées et déchiffrées sont limitées à l’utilisateur actuel. Les données ne peuvent pas être déchiffrées dans un contexte utilisateur différent.

root@kitploit:~
// Without entropy
DPAPI test = new DPAPI();
Byte[] bEncrypted = test.EncryptMachineDPAPI(bTestData);
Byte[] bDecrypted = test.DecryptMachineDPAPI(bEncrypted);

// With entropy
DPAPI test = new DPAPI("Lovecraft");
Byte[] bEncrypted = test.EncryptMachineDPAPI(bTestData);
Byte[] bDecrypted = test.DecryptMachineDPAPI(bEncrypted);

Miscellaneous

TOTP

Availability

Un mot de passe à usage unique basé sur le temps (TOTP) peut être utilisé comme vérification supplémentaire lors de l’exécution d’actions pour valider leur authenticité. Les TOTP générés par la bibliothèque sont valables pendant une minute complète de UtcNow. Ces secrets numériques peuvent également être utilisés pour alimenter dynamiquement des clés rotatives pour les algorithmes de chiffrement symétrique. Si les clients utilisent la même graine sur différentes machines, ils recevront le même TOTP.

Usage

root@kitploit:~
// Generate a TOTP using a string seed
TOTP test = new TOTP("Lovecraft");
Console.WriteLine("[+] TOPT Code     : "  + oOTP.Code);
Console.WriteLine("[+] TOPT Last Code: "  + oOTP.LastCode);
Console.WriteLine("[+] TOPT Validity : "  + oOTP.Seconds);

// Validate TOTP based on string seed
Boolean bValid = test.ValidateTOTP("Lovecraft", oTOTP.Code);

// Validate TOTP with forgiveness, this allows the previous TOTP
// to also be counted as valid
Boolean bValid = test.ValidateTOTP("Lovecraft", oTOTP.LastCode, true);
Télécharger l’outil