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
perl-CryptX — Toolkit crittografico Perl che fornisce cifrari simmetrici, modalità AEAD, funzioni hash, MAC, crittografia a chiave pubblica, derivazione delle chiavi e generazione casuale sicura tramite la libreria LibTomCrypt inclusa. | Kitploit
Strumenti/GitHubGitHub/dcit/perl-cryptx
Password CrackingStrumenti di Crittografia/DecrittografiaAnalisi HashCrittografiaUtilità e FrameworkAutenticazione
GitHubdcit/perl-cryptx

perl-CryptX

Toolkit crittografico Perl che fornisce cifrari simmetrici, modalità AEAD, funzioni hash, MAC, crittografia a chiave pubblica, derivazione delle chiavi e generazione casuale sicura tramite la libreria LibTomCrypt inclusa.

Vedi Repository
412648 giorni 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
Sito web

NOME

CryptX - Toolkit crittografico

SINOSSI

CryptX è il punto di ingresso della distribuzione. Nel codice normale, carica uno dei moduli concreti elencati di seguito.

root@kitploit:~
## one-shot hashing
use Crypt::Digest qw(digest_data_hex);
my $sha256 = digest_data_hex('SHA256', 'hello world');

## classic AES-CBC encryption with padding
use Crypt::Mode::CBC;
my $cbc = Crypt::Mode::CBC->new('AES');
my $iv = random_bytes(16); # 16-byte AES block-size IV
my $cbc_ciphertext = $cbc->encrypt('hello world', $key, $iv);

## authenticated encryption (AEAD) with AES
use Crypt::AuthEnc::GCM qw(gcm_encrypt_authenticate);
my $key = random_bytes(32);   # 32-byte AES-256 key
my $nonce = random_bytes(12); # 12-byte unique nonce
my ($ciphertext, $tag) = gcm_encrypt_authenticate('AES', $key, $nonce, 'header', 'hello world');

## message authentication
use Crypt::Mac::HMAC qw(hmac_hex);
my $mac = hmac_hex('SHA256', $key, 'hello world');

## secure random data + UUID helpers
use Crypt::PRNG qw(random_bytes random_string);
use Crypt::Misc qw(random_v4uuid random_v7uuid);
my $salt = random_bytes(16);
my $token = random_string(24);
my $uuid4 = random_v4uuid();
my $uuid7 = random_v7uuid();

## classic password-based key derivation
use Crypt::KeyDerivation qw(pbkdf2);
my $dk = pbkdf2('password', $salt, 100_000, 'SHA256', 32);

## bare stream cipher (authenticate separately)
use Crypt::Stream::ChaCha;
my $stream = Crypt::Stream::ChaCha->new($key, $nonce);
my $stream_ciphertext = $stream->crypt('hello world');

## modern signatures
use Crypt::PK::Ed25519;
my $signer = Crypt::PK::Ed25519->new->generate_key;
my $sig = $signer->sign_message('hello world');
my $ok = $signer->verify_message($sig, 'hello world');

## key agreement
use Crypt::PK::X25519;
my $alice = Crypt::PK::X25519->new->generate_key;
my $bob = Crypt::PK::X25519->new->generate_key;
my $shared_secret = $alice->shared_secret($bob);

DESCRIZIONE

Moduli crittografici Perl costruiti sulla libreria LibTomCrypt inclusa. La distribuzione include anche Math::BigInt::LTM, un backend per Math::BigInt costruito sulla libreria LibTomMath inclusa, usata internamente da LibTomCrypt.

Questo modulo serve principalmente come pagina di livello superiore della distribuzione/documentazione. Per il lavoro vero e proprio, usa uno dei moduli concreti elencati di seguito.

Guida alla scelta degli algoritmi

Cifratura autenticata (AEAD)

Per i nuovi progetti, preferisci la cifratura autenticata (AEAD) rispetto ai modi di cifratura non autenticati:

  • ChaCha20-Poly1305 (Crypt::AuthEnc::ChaCha20Poly1305) - Veloce, a tempo costante, ampiamente implementato (TLS 1.3, WireGuard, SSH). Usalo come scelta predefinita per AEAD.
  • XChaCha20-Poly1305 (Crypt::AuthEnc::XChaCha20Poly1305) - Variante con nonce esteso a 24 byte. Preferiscilo a ChaCha20-Poly1305 quando i nonce sono generati casualmente.
  • AES-GCM (Crypt::AuthEnc::GCM) - Il modo AEAD standard per AES. Accelerato via hardware sulle CPU moderne. Richiede nonce univoci; il riutilizzo del nonce compromette completamente la sicurezza.
  • AES-SIV (Crypt::AuthEnc::SIV) - AEAD deterministico, resistente all'abuso del nonce. Leggermente più lento ma più sicuro quando l'univocità del nonce non può essere garantita.
  • AES-GCM-SIV (Crypt::AuthEnc::GCMSIV) - AEAD resistente all'abuso del nonce (RFC 8452). Più veloce di AES-SIV; sceglilo quando ti serve una prestazione simile a GCM con la sicurezza del riutilizzo del nonce.
  • AES-OCB (Crypt::AuthEnc::OCB) - AEAD a passaggio singolo molto veloce. Controlla lo stato dei brevetti per la tua giurisdizione.
  • AES-EAX (Crypt::AuthEnc::EAX) - AEAD a due passaggi basato su CTR+OMAC. Nessun brevetto, nessuna restrizione sulla lunghezza del nonce.
  • AES-CCM (Crypt::AuthEnc::CCM) - Usato in WiFi (WPA2) e Bluetooth. Richiede di conoscere in anticipo la lunghezza del testo in chiaro.

Casualità crittograficamente sicura e UUID

  • Byte / stringhe casuali (Crypt::PRNG) - Usalo per salt, chiavi, nonce, token e qualsiasi altro valore casuale segreto. Le funzioni di supporto random_bytes, random_bytes_hex, random_bytes_b64, random_bytes_b64u, random_string e random_string_from coprono la maggior parte dei casi d'uso. L'API OO e i wrapper specifici dell'algoritmo (Crypt::PRNG::ChaCha20, Crypt::PRNG::Fortuna, ecc.) servono principalmente per stream deterministici o per l'interoperabilità con un PRNG specifico.
  • UUID ("random_v4uuid" in Crypt::Misc, "random_v7uuid" in Crypt::Misc) - Usa random_v4uuid per identificatori casuali opachi. Usa random_v7uuid quando vuoi identificatori approssimativamente ordinati nel tempo che si ordinano per tempo di creazione con granularità al millisecondo. Gli UUID sono identificatori, non sostituti dei byte casuali segreti.

Cifrari a flusso

I cifrari a flusso cifrano i dati byte per byte senza padding a blocchi. Per la maggior parte delle applicazioni, preferisci un modo AEAD (vedi sopra) che combina cifratura e autenticazione. Usa cifrari a flusso non autenticati solo quando gestisci l'autenticazione separatamente.

  • ChaCha (Crypt::Stream::ChaCha) - La scelta predefinita tra i cifrari a flusso. Stesso nucleo di ChaCha20-Poly1305 senza il MAC integrato.
  • XChaCha (Crypt::Stream::XChaCha) - Variante di ChaCha con nonce esteso a 24 byte. Preferiscilo quando i nonce sono generati casualmente.
  • Salsa20 / XSalsa20 (Crypt::Stream::Salsa20, Crypt::Stream::XSalsa20) - Predecessore di ChaCha. Preferisci ChaCha per i nuovi progetti; Salsa20 solo per l'interoperabilità (es. NaCl/libsodium).
  • RC4 (Crypt::Stream::RC4) - Compromesso; non usarlo per i nuovi progetti. Fornito solo per l'interoperabilità legacy.
  • Rabbit, Sober128, Sosemanuk (Crypt::Stream::Rabbit, Crypt::Stream::Sober128, Crypt::Stream::Sosemanuk) - Cifrari di nicchia del portfolio eSTREAM. Usa ChaCha a meno che un protocollo specifico non richieda uno di questi.

Modi di cifratura a blocchi (senza autenticazione)

Usali solo quando l'autenticazione è gestita separatamente o non è necessaria:

  • CTR (Crypt::Mode::CTR) - Trasforma un cifrario a blocchi in un cifrario a flusso. Parallelizzabile.
  • CBC (Crypt::Mode::CBC) - Modo classico, richiede padding. Preferisci CTR o un modo AEAD.
  • ECB (Crypt::Mode::ECB) - Non sicuro per la maggior parte degli usi. Ogni blocco viene cifrato indipendentemente.

I singoli moduli Crypt::Cipher::AES, Crypt::Cipher::Twofish, ecc. implementano la cifratura grezza a blocco singolo e sono raramente usati direttamente. In quasi tutti i casi dovresti usarli tramite un modo AEAD (Crypt::AuthEnc::GCM, Crypt::AuthEnc::CCM) o un modo di cifratura a blocchi (Crypt::Mode::CBC, Crypt::Mode::CTR). Nella scelta di un cifrario, AES è l'opzione predefinita; è accelerato via hardware sulla maggior parte delle CPU moderne.

Funzioni di hash

  • SHA-256 / SHA-384 / SHA-512 (Crypt::Digest::SHA256, ecc.) - La scelta predefinita per l'hashing generico. Ampiamente supportate e ben analizzate.
  • SHA3-256 / SHA3-512 (Crypt::Digest::SHA3_256, ecc.) - Alternativa a SHA-2 con una costruzione completamente diversa (spugna di Keccak).
  • BLAKE2b / BLAKE2s (Crypt::Digest::BLAKE2b_256, ecc.) - Molto veloci, soprattutto in software. BLAKE2b per piattaforme a 64 bit, BLAKE2s per quelle a 32 bit.
  • SHAKE / TurboSHAKE / KangarooTwelve - Funzioni a output estendibile (XOF). Usale quando ti serve un output di lunghezza variabile.

Checksum

Usa Crypt::Checksum::CRC32 e Crypt::Checksum::Adler32 solo per controlli di integrità non avversariali, come il rilevamento di corruzione accidentale. Non sono meccanismi crittografici di integrità o autenticità. Per uso crittografico, preferisci Crypt::Digest, Crypt::Mac o un modo AEAD di Crypt::AuthEnc.

Codici di autenticazione dei messaggi

  • HMAC (Crypt::Mac::HMAC) - La costruzione MAC standard. Funziona con qualsiasi hash. Usa HMAC-SHA256 come predefinito.
  • Poly1305 (Crypt::Mac::Poly1305) - MAC monouso, molto veloce. Usato come parte di ChaCha20-Poly1305. Richiede una chiave univoca per messaggio.
  • BLAKE2b-MAC (Crypt::Mac::BLAKE2b) - BLAKE2 con chiave. Più veloce di HMAC-SHA256 in software.
  • CMAC/OMAC (Crypt::Mac::OMAC) - MAC basato su cifrario a blocchi. Usalo quando hai già AES ma non una funzione di hash.

Crittografia a chiave pubblica

  • Ed25519 (Crypt::PK::Ed25519) - Firme digitali moderne. Veloci, a tempo costante, chiavi/firme di piccole dimensioni. La scelta predefinita per i nuovi schemi di firma.
  • Ed448 (Crypt::PK::Ed448) - Margine di sicurezza superiore a Ed25519 (~224 bit contro ~128 bit).
  • X25519 (Crypt::PK::X25519) - Scambio di chiavi Diffie-Hellman su curva ellittica. La scelta predefinita per lo scambio di chiavi.
  • X448 (Crypt::PK::X448) - Margine di sicurezza superiore a X25519.
  • ECDSA (Crypt::PK::ECC) - Ampiamente usato (TLS, Bitcoin). Preferisci Ed25519 per i nuovi progetti a meno che ECDSA non sia richiesto per l'interoperabilità.
  • RSA (Crypt::PK::RSA) - Legacy ma molto diffuso. Usa chiavi minime a 2048 bit, preferibilmente a 4096 bit. Preferisci OAEP per la cifratura e PSS per le firme.
  • DSA (Crypt::PK::DSA) - Legacy. Preferisci Ed25519 o ECDSA.
  • DH (Crypt::PK::DH) - Diffie-Hellman classico. Preferisci X25519 per i nuovi progetti.

Derivazione delle chiavi / hashing delle password

  • HKDF ("hkdf" in Crypt::KeyDerivation) - KDF estrai-poi-espandi. Usalo per derivare chiavi da segreti condivisi (es. dopo ECDH).
  • Argon2 ("argon2_pbkdf" in Crypt::KeyDerivation) - Hashing delle password memory-hard. La scelta consigliata per l'archiviazione delle password.
  • Bcrypt ("bcrypt_pbkdf" in Crypt::KeyDerivation) - Usalo principalmente per la compatibilità con formati e protocolli che richiedono specificamente la derivazione di chiavi basata su bcrypt (ad esempio alcuni flussi di lavoro OpenSSH). Preferisci Argon2 per i nuovi progetti di archiviazione password.
  • Scrypt ("scrypt_pbkdf" in Crypt::KeyDerivation) - KDF memory-hard. Usa Argon2 se disponibile.
  • PBKDF2 ("pbkdf2" in Crypt::KeyDerivation) - Ampiamente supportato ma con robustezza solo CPU. Usa Argon2 o Scrypt quando possibile.
  • PBKDF1 ("pbkdf1" in Crypt::KeyDerivation, "pbkdf1_openssl" in Crypt::KeyDerivation) - Derivazione solo legacy. Tienilo per l'interoperabilità con formati più vecchi; non usarlo per i nuovi progetti.

Gestione degli errori

La maggior parte dei moduli CryptX segnala gli errori chiamando croak (da Carp). Parametri non validi, algoritmi non supportati, dimensioni delle chiavi errate, input malformati e guasti interni della libreria di solito generano un croak con un messaggio descrittivo. Cattura le eccezioni con eval o Try::Tiny.

Alcuni helper in stile validazione usano un valore di ritorno invece di chiamare croak. Gli esempi più importanti sono le funzioni *_decrypt_verify nei moduli di cifratura autenticata Crypt::AuthEnc::*. Queste restituiscono undef quando l'autenticazione fallisce, indicando che il testo cifrato è stato manomesso o che è stata usata la chiave/nonce sbagliata. Alcuni helper parser/decoder in altri moduli restituiscono anch'essi undef o false per input malformati, quindi controlla la POD del modulo specifico quando ti servono semantiche di errore esatte.

Mappa dei moduli

  • Moduli famiglia di primo livello

    Crypt::Cipher, Crypt::Mode, Crypt::AuthEnc, Crypt::Digest, Crypt::Mac, Crypt::Checksum, Crypt::PRNG, Crypt::PK, Crypt::KeyDerivation, Crypt::Misc, Crypt::ASN1

  • Cifrari simmetrici

    Crypt::Cipher::AES, Crypt::Cipher::Anubis, Crypt::Cipher::ARIA, Crypt::Cipher::Blowfish, Crypt::Cipher::Camellia, Crypt::Cipher::CAST5, Crypt::Cipher::DES, Crypt::Cipher::DES_EDE, Crypt::Cipher::IDEA, Crypt::Cipher::KASUMI, Crypt::Cipher::Khazad, Crypt::Cipher::MULTI2, Crypt::Cipher::Noekeon, Crypt::Cipher::RC2, , , , , , , , , , , , ,

Funzioni diagnostiche

Queste funzioni di basso livello espongono i dettagli della build LibTomCrypt inclusa. Sono pensate per la risoluzione dei problemi e per le segnalazioni di bug, non per un uso regolare.

ltc_build_settings

root@kitploit:~
my $str = CryptX::ltc_build_settings();

Restituisce una stringa su più righe che descrive ogni opzione di compilazione abilitata quando è stata costruita la libreria LibTomCrypt inclusa (cifrari, hash, MAC, algoritmi PK, flag del compilatore, ecc.).

ltc_mp_name

root@kitploit:~
my $name = CryptX::ltc_mp_name();
# e.g. "LTM" (LibTomMath)

Restituisce il nome del backend del provider matematico in uso.

ltc_mp_bits_per_digit

root@kitploit:~
my $bits = CryptX::ltc_mp_bits_per_digit();
# e.g. 60

Restituisce il numero di bit per cifra utilizzati dal provider matematico.

Backend Math::BigInt

Parte di CryptX è Math::BigInt::LTM, un backend Math::BigInt basato sulla libreria LibTomMath inclusa. È separato dalle API crittografiche sopra descritte, ma viene distribuito nella stessa distribuzione e usa lo stesso motore per interi grandi su cui fa affidamento LibTomCrypt.

LICENZA

Questo programma è software libero; puoi ridistribuirlo e/o modificarlo secondo gli stessi termini di Perl stesso.

COPYRIGHT

Copyright (c) 2013-2026 DCIT, a.s. https://www.dcit.cz / Karel Miko

Scarica lo strumento
Crypt::Cipher::RC5
Crypt::Cipher::RC6
Crypt::Cipher::SAFERP
Crypt::Cipher::SAFER_K128
Crypt::Cipher::SAFER_K64
Crypt::Cipher::SAFER_SK128
Crypt::Cipher::SAFER_SK64
Crypt::Cipher::SEED
Crypt::Cipher::SM4
Crypt::Cipher::Serpent
Crypt::Cipher::Skipjack
Crypt::Cipher::Twofish
Crypt::Cipher::XTEA
  • Modi di cifratura a blocchi

    Crypt::Mode::CBC, Crypt::Mode::CFB, Crypt::Mode::CTR, Crypt::Mode::ECB, Crypt::Mode::OFB

  • Cifrari a flusso

    Crypt::Stream::RC4, Crypt::Stream::ChaCha, Crypt::Stream::XChaCha, Crypt::Stream::Salsa20, Crypt::Stream::XSalsa20, Crypt::Stream::Sober128, Crypt::Stream::Sosemanuk, Crypt::Stream::Rabbit

  • Modi di cifratura autenticata

    Crypt::AuthEnc::CCM, Crypt::AuthEnc::EAX, Crypt::AuthEnc::GCM, Crypt::AuthEnc::GCMSIV, Crypt::AuthEnc::OCB, Crypt::AuthEnc::ChaCha20Poly1305, Crypt::AuthEnc::XChaCha20Poly1305, Crypt::AuthEnc::SIV

  • Funzioni di hashCrypt::Digest::BLAKE2b_160, Crypt::Digest::BLAKE2b_256, Crypt::Digest::BLAKE2b_384, Crypt::Digest::BLAKE2b_512, Crypt::Digest::BLAKE2s_128, Crypt::Digest::BLAKE2s_160, Crypt::Digest::BLAKE2s_224, Crypt::Digest::BLAKE2s_256, Crypt::Digest::CHAES, Crypt::Digest::MD2, Crypt::Digest::MD4, Crypt::Digest::MD5, Crypt::Digest::RIPEMD128, Crypt::Digest::RIPEMD160, Crypt::Digest::RIPEMD256, Crypt::Digest::RIPEMD320, Crypt::Digest::SHA1, Crypt::Digest::SHA224, Crypt::Digest::SHA256, Crypt::Digest::SHA384, Crypt::Digest::SHA512, Crypt::Digest::SHA512_224, Crypt::Digest::SHA512_256, Crypt::Digest::Tiger192, Crypt::Digest::Whirlpool, Crypt::Digest::Keccak224, Crypt::Digest::Keccak256, Crypt::Digest::Keccak384, Crypt::Digest::Keccak512, Crypt::Digest::SHA3_224, Crypt::Digest::SHA3_256, Crypt::Digest::SHA3_384, Crypt::Digest::SHA3_512, Crypt::Digest::SHAKE, Crypt::Digest::TurboSHAKE, Crypt::Digest::KangarooTwelve, Crypt::Digest::SM3

  • Checksum

    Crypt::Checksum::Adler32, Crypt::Checksum::CRC32

  • Codici di autenticazione dei messaggi

    Crypt::Mac::BLAKE2b, Crypt::Mac::BLAKE2s, Crypt::Mac::F9, Crypt::Mac::HMAC, Crypt::Mac::KMAC, Crypt::Mac::OMAC, Crypt::Mac::Pelican, Crypt::Mac::PMAC, Crypt::Mac::XCBC, Crypt::Mac::Poly1305

  • Crittografia a chiave pubblica

    Crypt::PK::RSA, Crypt::PK::DSA, Crypt::PK::ECC, Crypt::PK::DH, Crypt::PK::Ed25519, Crypt::PK::X25519, Crypt::PK::Ed448, Crypt::PK::X448

  • Generatori di numeri casuali crittograficamente sicuri

    Crypt::PRNG::Fortuna, Crypt::PRNG::Yarrow, Crypt::PRNG::RC4, Crypt::PRNG::Sober128, Crypt::PRNG::ChaCha20

  • Funzioni di derivazione della chiave

    Crypt::KeyDerivation

  • Parser ASN.1

    Crypt::ASN1

    Usa Crypt::ASN1 solo quando hai bisogno di parsing o encoding ASN.1 / DER personalizzati. La maggior parte dei formati comuni di chiavi e certificati è già gestita dai moduli PK.

  • Helper vari

    Crypt::Misc (codec base64/base32/base58, helper PEM, confronto a tempo costante, generazione UUID, helper per l'incremento di ottetti e funzioni di utilità correlate)