Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
工具/GitHubGitHub/dcit/perl-cryptx
密码破解加密/解密工具哈希分析密码学实用工具与框架身份验证
GitHubdcit/perl-cryptx

perl-CryptX

Perl 加密工具包,通过内置的 LibTomCrypt 库提供对称密码、AEAD 模式、哈希函数、MAC、公钥密码学、密钥派生以及安全随机数生成功能。

查看仓库
412648天前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站

名称

CryptX - 加密工具包

概要

CryptX 是发行版的入口点。在正常代码中,请加载下面列出的具体模块之一。

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

描述

Perl 密码学模块,构建于随附的 LibTomCrypt 库之上。 该发行版还包含 Math::BigInt::LTM,一个基于随附的 LibTomMath 库构建的 Math::BigInt 后端, 该库由 LibTomCrypt 内部使用。

此模块主要作为顶层发行版/文档页面。实际使用时,请使用下面列出的具体模块之一。

算法选择指南

认证加密(AEAD)

对于新设计,建议优先使用认证加密(AEAD),而非裸加密模式:

  • ChaCha20-Poly1305 (Crypt::AuthEnc::ChaCha20Poly1305) - 快速、恒定时间,广泛部署(TLS 1.3、WireGuard、SSH)。将其作为默认的 AEAD 选择。
  • XChaCha20-Poly1305 (Crypt::AuthEnc::XChaCha20Poly1305) - 24 字节 nonce 的扩展变体。当 nonce 随机生成时,优先选择它而不是 ChaCha20-Poly1305。
  • AES-GCM (Crypt::AuthEnc::GCM) - AES 的标准 AEAD 模式。在现代 CPU 上具有硬件加速。需要唯一 nonce;nonce 重用会彻底破坏安全性。
  • AES-SIV (Crypt::AuthEnc::SIV) - 确定性 AEAD,抗 nonce 误用。速度稍慢,但在无法保证 nonce 唯一性时更安全。
  • AES-GCM-SIV (Crypt::AuthEnc::GCMSIV) - 抗 nonce 误用的 AEAD(RFC 8452)。比 AES-SIV 更快;当你需要类似 GCM 的性能并兼具 nonce 重用安全性时,选择它。
  • AES-OCB (Crypt::AuthEnc::OCB) - 非常快速的单遍 AEAD。请检查您所在司法辖区的专利状态。
  • AES-EAX (Crypt::AuthEnc::EAX) - 基于 CTR+OMAC 的两遍 AEAD。无专利,无 nonce 长度限制。
  • AES-CCM (Crypt::AuthEnc::CCM) - 用于 WiFi(WPA2)和蓝牙。需要预先知道明文长度。

密码学安全随机数与 UUID

  • 随机字节 / 字符串 (Crypt::PRNG) - 用于盐、密钥、nonce、令牌以及任何其他秘密随机值。函数式辅助方法 random_bytes、random_bytes_hex、random_bytes_b64、random_bytes_b64u、random_string 和 random_string_from 覆盖了大多数用例。OO API 和特定算法的包装器(Crypt::PRNG::ChaCha20、Crypt::PRNG::Fortuna 等)主要用于确定性流或与特定 PRNG 的互操作。
  • UUID(Crypt::Misc 中的 "random_v4uuid"、Crypt::Misc 中的 "random_v7uuid")- 使用 random_v4uuid 生成不透明的随机标识符。当您需要大致按创建时间排序(毫秒粒度)的标识符时,使用 random_v7uuid。UUID 是标识符,不能替代秘密随机字节。

流密码

流密码逐字节加密数据,无需块填充。对于大多数应用程序,请优先选择 AEAD 模式(见上文),它将加密与认证捆绑在一起。仅当您单独处理认证时才使用裸流密码。

  • ChaCha (Crypt::Stream::ChaCha) - 默认的流密码选择。与 ChaCha20-Poly1305 相同的核心,但没有内置 MAC。
  • XChaCha (Crypt::Stream::XChaCha) - ChaCha 的 24 字节 nonce 扩展变体。当 nonce 随机生成时优先选择。
  • Salsa20 / XSalsa20(Crypt::Stream::Salsa20、Crypt::Stream::XSalsa20)- ChaCha 的前身。新设计优先使用 ChaCha;Salsa20 仅用于互操作(例如 NaCl/libsodium)。
  • RC4(Crypt::Stream::RC4)- 已破解;请勿用于新设计。 仅为遗留互操作而提供。
  • Rabbit、Sober128、Sosemanuk(Crypt::Stream::Rabbit、Crypt::Stream::Sober128、Crypt::Stream::Sosemanuk)- eSTREAM 作品集中的小众密码。除非特定协议要求其中之一,否则使用 ChaCha。

分组密码模式(无认证)

仅当认证单独处理或不需要认证时才使用这些模式:

  • CTR(Crypt::Mode::CTR)- 将分组密码转换为流密码。可并行化。
  • CBC(Crypt::Mode::CBC)- 经典模式,需要填充。优先使用 CTR 或 AEAD 模式。
  • ECB(Crypt::Mode::ECB)- 对大多数用途不安全。 每个块独立加密。

单独的 Crypt::Cipher::AES、Crypt::Cipher::Twofish 等模块实现原始的单个块加密,很少直接使用。在几乎所有情况下,您都应该通过 AEAD 模式(Crypt::AuthEnc::GCM、Crypt::AuthEnc::CCM)或分组密码模式(Crypt::Mode::CBC、Crypt::Mode::CTR)来使用它们。选择密码时,AES 是默认选择;它在大多数现代 CPU 上都有硬件加速。

哈希函数

  • SHA-256 / SHA-384 / SHA-512(Crypt::Digest::SHA256 等)- 通用哈希的默认选择。得到广泛支持且分析充分。
  • SHA3-256 / SHA3-512(Crypt::Digest::SHA3_256 等)- SHA-2 的替代方案,采用完全不同的构造(Keccak 海绵结构)。
  • BLAKE2b / BLAKE2s(Crypt::Digest::BLAKE2b_256 等)- 非常快,尤其是在软件实现中。BLAKE2b 用于 64 位平台,BLAKE2s 用于 32 位。
  • SHAKE / TurboSHAKE / KangarooTwelve - 可扩展输出函数(XOF)。当您需要可变长度输出时使用。

校验和

仅将 Crypt::Checksum::CRC32 和 Crypt::Checksum::Adler32 用于非对抗性完整性检查,例如意外损坏检测。它们不是密码学完整性或真实性机制。对于密码学用途,请优先使用 Crypt::Digest、Crypt::Mac,或来自 Crypt::AuthEnc 的 AEAD 模式。

消息认证码

  • HMAC(Crypt::Mac::HMAC)- 标准 MAC 构造。可与任何哈希配合使用。默认使用 HMAC-SHA256。
  • Poly1305(Crypt::Mac::Poly1305)- 一次性 MAC,非常快。用作 ChaCha20-Poly1305 的一部分。每条消息需要唯一密钥。
  • BLAKE2b-MAC(Crypt::Mac::BLAKE2b)- 带密钥的 BLAKE2。软件实现中比 HMAC-SHA256 更快。
  • CMAC/OMAC(Crypt::Mac::OMAC)- 基于分组密码的 MAC。当您已有 AES 但没有哈希函数时使用。

公钥密码学

  • Ed25519(Crypt::PK::Ed25519)- 现代数字签名。快速、恒定时间、小体积密钥/签名。新签名方案的首选。
  • Ed448(Crypt::PK::Ed448)- 比 Ed25519 更高的安全余量(约 224 位对比约 128 位)。
  • X25519(Crypt::PK::X25519)- 椭圆曲线 Diffie-Hellman 密钥协商。密钥交换的默认选择。
  • X448(Crypt::PK::X448)- 比 X25519 更高的安全余量。
  • ECDSA(Crypt::PK::ECC)- 广泛使用(TLS、Bitcoin)。除非互操作需要 ECDSA,否则新设计优先使用 Ed25519。
  • RSA(Crypt::PK::RSA)- 遗留但使用极其广泛。密钥至少 2048 位,优选 4096 位。加密优先使用 OAEP,签名优先使用 PSS。
  • DSA(Crypt::PK::DSA)- 遗留。优先使用 Ed25519 或 ECDSA。
  • DH(Crypt::PK::DH)- 经典 Diffie-Hellman。新设计优先使用 X25519。

密钥派生 / 密码哈希

  • HKDF(Crypt::KeyDerivation 中的 "hkdf")- 先提取后扩展的 KDF。用于从共享机密派生密钥(例如 ECDH 之后)。
  • Argon2(Crypt::KeyDerivation 中的 "argon2_pbkdf")- 内存困难型密码哈希。密码存储的推荐选择。
  • Bcrypt(Crypt::KeyDerivation 中的 "bcrypt_pbkdf")- 主要用于与明确要求基于 bcrypt 的密钥派生的格式和协议(例如某些 OpenSSH 工作流)保持兼容。新密码存储设计优先使用 Argon2。
  • Scrypt(Crypt::KeyDerivation 中的 "scrypt_pbkdf")- 内存困难型 KDF。如果可用,请使用 Argon2。
  • PBKDF2(Crypt::KeyDerivation 中的 "pbkdf2")- 广泛支持,但仅具备 CPU 硬度。尽可能使用 Argon2 或 Scrypt。
  • PBKDF1(Crypt::KeyDerivation 中的 "pbkdf1"、Crypt::KeyDerivation 中的 "pbkdf1_openssl")- 仅用于遗留派生。保留它用于与旧格式的互操作;不要用于新设计。

错误处理

大多数 CryptX 模块通过调用 croak(来自 Carp)来报告错误。无效参数、不支持的算法、错误的密钥大小、格式错误的输入以及内部库故障通常会以带有描述性信息的 croak 方式退出。使用 eval 或 Try::Tiny 捕获异常。

一些验证风格的辅助函数使用返回值而不是 croak。最重要的例子是认证加密模块 Crypt::AuthEnc::* 中的 *_decrypt_verify 函数。当认证失败时,这些函数返回 undef,表示密文被篡改或使用了错误的密钥/nonce。其他模块中的一些解析器/解码器辅助函数对格式错误的输入也会返回 undef 或 false,因此当您需要确切的失败语义时,请查阅具体模块的 POD。

模块映射

  • 顶层系列模块

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

  • 对称密码

    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, , , , , , , , , , , , ,

诊断函数

这些底层函数会暴露捆绑的 LibTomCrypt 构建的详细信息。它们用于故障排查和错误报告,而非常规使用。

ltc_build_settings

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

返回一个多行字符串,描述捆绑的 LibTomCrypt 库在构建时启用的每一个编译期选项(密码、哈希、MAC、PK 算法、编译器标志等)。

ltc_mp_name

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

返回所使用的数学提供程序后端的名称。

ltc_mp_bits_per_digit

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

返回数学提供程序每个 digit 所使用的位数。

Math::BigInt 后端

CryptX 的一部分是 Math::BigInt::LTM,一个基于捆绑的 LibTomMath 库的 Math::BigInt 后端。它与上述加密 API 相互独立,但随同一发行版一起发布,并使用 LibTomCrypt 所依赖的同一大整数引擎。

许可证

本程序是自由软件;您可以根据 Perl 本身的相同条款重新分发和/或修改它。

版权

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

下载工具
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
  • 分组密码模式

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

  • 流密码

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

  • 认证加密模式

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

  • 哈希函数Crypt::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

  • 校验和

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

  • 消息认证码

    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

  • 公钥密码学

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

  • 密码学安全随机数生成器

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

  • 密钥派生函数

    Crypt::KeyDerivation

  • ASN.1 解析器

    Crypt::ASN1

    仅当您需要自定义 ASN.1 / DER 解析或编码时,才使用 Crypt::ASN1。 大多数常见的密钥和证书格式已由 PK 模块处理。

  • 杂项辅助工具

    Crypt::Misc(base64/base32/base58 编解码器、PEM 辅助函数、恒定时间比较、UUID 生成、八位字节递增辅助函数及相关实用函数)