Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
AdvSim.Cryptography — Libreria wrapper crittografica semplice e sensata. | Kitploit
Strumenti/GitHubGitHub/fuzzysecurity/advsim.cryptography
Strumenti di Crittografia/DecrittografiaCrittografiaUtilità e FrameworkAutenticazione
GitHubfuzzysecurity/advsim.cryptography

AdvSim.Cryptography

Libreria wrapper crittografica semplice e sensata.

Vedi Repository
33523 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Release

AdvSim.Cryptography

Il pacchetto NuGet AdvSim.Cryptography contiene un insieme di funzioni wrapper crittografiche riutilizzabili, configurate con impostazioni predefinite sensate e facili da usare. Ulteriori dettagli sono disponibili nelle diverse sottosezioni riportate di seguito.

  • Crittografia simmetrica
    • Generazione del materiale chiave
    • AES
    • Triple DES
    • RC4
    • RC2
    • Multi-Byte XOR
    • XTEA
  • Crittografia asimmetrica
    • Elliptic-curve Diffie–Hellman (ECDH)
    • RSA
  • Windows Locale
    • Generazione di entropia
    • DPAPI Macchina locale
    • DPAPI Utente corrente
  • Miscellanea
    • TOTP

Compatibilità NuGet

Il pacchetto NuGet AdvSim.Cryptography supporta un'ampia varietà di versioni di .Net. In generale, le funzioni incluse nella libreria hanno una buona copertura tra i framework di destinazione. Dove le funzioni sono limitate a framework specifici, è stato aggiunto un badge per evidenziare tale dipendenza.

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

Materiale chiave

Quando il materiale chiave viene fornito come parte del costruttore crittografico, Rfc2898DeriveBytes viene utilizzato per restituire array di byte pseudo-casuali come seed per le operazioni di crittografia e decrittografia. Questi array di byte sono di alta qualità e garantiscono inoltre che chiamare la stessa funzione con lo stesso materiale chiave produca lo stesso seed pseudo-casuale.

Utilizzo

Crittografia simmetrica

AES

Availability

Questa funzione accetta un array di byte e lo crittografa o decrittografa utilizzando il materiale chiave fornito nel costruttore. Al termine restituisce un array di byte.

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

Triple DES

Availability

Questa funzione accetta un array di byte e lo crittografa o decrittografa utilizzando il materiale chiave fornito nel costruttore. Al termine restituisce un array di byte.

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

RC4

Availability

Questa funzione accetta un array di byte e lo crittografa o decrittografa utilizzando il materiale chiave fornito nel costruttore. Al termine restituisce un array di byte.

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

RC2

Availability

Questa funzione accetta un array di byte e lo crittografa o decrittografa utilizzando il materiale chiave fornito nel costruttore. Al termine restituisce un array di byte.

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

Multi-Byte XOR

Availability

Questa funzione accetta un array di byte e lo crittografa o decrittografa utilizzando il materiale chiave fornito nel costruttore. Al termine restituisce un array di byte.

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

XTEA

Availability

Questa funzione accetta un array di byte e lo crittografa o decrittografa utilizzando il materiale chiave fornito nel costruttore. Al termine restituisce un array di byte.

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

Crittografia asimmetrica

Elliptic-curve Diffie–Hellman (ECDH)

Availability Availability

Si noti che in v2.0.0 ECDH è supportato in tutte le versioni di .Net disponibili nel pacchetto NuGet. Tuttavia, a causa di alcune scelte progettuali di .Net davvero discutibili, non è banale ottenere l'interoperabilità tra tutti i target supportati.

Di conseguenza, ci sono differenze implementative tra Framework < .Net 4.7 e tutto il resto. Entrambi i client dovrebbero rientrare nello stesso gruppo per eseguire con successo uno scambio di chiavi. Se, ad esempio, hai bisogno che un client sia su .Net 6 e un altro su .Net 4.5.1, allora dovresti usare RSA.

Per comprendere meglio il versioning di .Net, puoi consultare la seguente risorsa.

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

Utilizzo

Framework < .Net 4.7

Questi target supportano solo nistP256 e possono utilizzare la libreria come segue.

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

Questi target accettano una curva come argomento del costruttore.

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

L'utilizzo è mostrato di seguito.

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

Si noti che questa funzionalità non richiede necessariamente due client, poiché, a differenza dell'ECDH, le chiavi pubbliche non devono essere scambiate per derivare un segreto condiviso. Naturalmente, come sopra, puoi inviare la tua chiave pubblica a un altro client, che potrà poi crittografare dati che solo tu puoi decrittografare.

Utilizzo

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

Windows Locale

DPAPI Macchina locale

Availability

I dati crittografati e decrittografati sono limitati alla macchina. I dati non possono essere decrittografati al di fuori dell'host.

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 Utente corrente

Availability

I dati crittografati e decrittografati sono limitati all'utente corrente. I dati non possono essere decrittografati in un contesto utente diverso.

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);

Miscellanea

TOTP

Availability

Una password monouso basata sul tempo (TOTP) può essere utilizzata come controllo aggiuntivo durante l'esecuzione di azioni per verificarne l'autenticità. I TOTP generati dalla libreria sono validi per un intero minuto UtcNow. Questi segreti numerici possono anche essere utilizzati per inizializzare dinamicamente chiavi rotanti per algoritmi di crittografia simmetrica. Se i client usano lo stesso seed su macchine diverse, riceveranno lo stesso TOTP.

Utilizzo

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);
Scarica lo strumento