面向 Delphi 和 C++ Builder 的现代加密库 | sgcCrypto
自 sgcWebSockets Standard 起随附赠送 也可单独购买

sgcCrypto — 面向 Delphi 和 C++ Builder 的现代加密库

43 个纯 Object Pascal 单元,没有组件,没有设计时占用:传入 TBytes,取回 TBytes。AES-GCM 和 ChaCha20-Poly1305 用于加密,SHA-3/BLAKE2/Argon2 用于哈希,Ed25519/X25519/RSA 用于签名和密钥交换,X.509 证书解析与生成,以及后量子 ML-KEM、ML-DSA 和 SLH-DSA。每个原语都直接在您添加到 uses 子句的单元中实现:没有外部 DLL,没有 OpenSSL 绑定,同一份源代码从 Delphi 7 到 RAD Studio 13 编译不变。sgcCrypto 随 sgcWebSockets Standard、Professional 和 Enterprise 免费提供,也作为独立产品出售(捆绑 sgcWebSockets Core 运行时),供只拥有 Core 的客户使用。

完整源代码
Win32、Win64、Linux64、macOS、iOS 和 Android
Delphi 7 → 13,保持不变
零外部依赖
43 个纯函数 sgcCrypto_*.pas 没有组件。调用函数,取回字节数据。
AES-GCM sgcAES_GCM_Encrypt
ChaCha20-Poly1305 sgcChaCha20Poly1305_Encrypt
SHA-3 / SHAKE sgcSHA3_256
Ed25519 / X25519 sgcEd25519_Sign
RSA-PSS sgcRSA_PSS_Sign
ML-KEM / ML-DSA sgcMLKEM_Encapsulate
X.509 / CSR sgcX509_CreateSelfSigned
43 纯函数单元 sgcCrypto_*.pas,零组件
6 能力分类 对称加密、哈希、签名、PKI、后量子、OTP
6 目标平台 Win32、Win64、Linux64、macOS、iOS、Android
3 后量子 FIPS 标准 ML-KEM (203)、ML-DSA (204)、SLH-DSA (205)
2 拥有方式 包含在某个版本中,或单独购买

购买前值得了解的三件事

sgcCrypto 是什么、您是否已经拥有它、它可以在哪里运行。这三个答案都很简短。

sgcCrypto 是纯函数,不是组件

43 个单元中的每一个都只导出普通的函数和过程。没有 Tsgc* 类,没有任何东西会被 RegisterComponents,也没有 sgcCrypto_Reg.pas。您调用 sgcAES_GCM_Encrypt(aKey, aIV, aPlain, aAAD, aTag) 的方式,和调用任何 RTL 函数一样,可以来自窗体、服务、控制台程序或线程。

每份许可证都附带完整源代码,因此这些原语可以在您自己的调试器中单步执行,而不会消失在二进制文件或 DLL 里。

版本重叠

已经拥有某个 sgcWebSockets 版本?

sgcCrypto 已包含在 sgcWebSockets Standard、Professional 和 Enterprise 中,以及 All-Access 中,无需额外付费。如果您已经持有 Standard 及以上任意版本的许可证,您已经拥有全部 43 个单元,无需再购买。

sgcCrypto 也以独立产品的形式存在,适用于相反的情况:您只拥有 sgcWebSockets Core,或者根本没有 sgcWebSockets 许可证,但又想要这些加密单元,而不必购买完整版本的许可证。

平台范围

sgcCrypto 不带平台限制

与 AI 或语音相关的包不同,sgcVer.inc 中没有任何设置将 sgcCrypto 限制在 Windows 上。这些单元都是普通的 Object Pascal 运算代码,因此同一份源代码可以为 Win32、Win64、Linux64、macOS、iOS 和 Android 编译。

唯一一个感知平台的单元 sgcCrypto_Random,会根据目标平台选择相应的 CSPRNG 后端(Windows 上是 CryptoAPI,其他平台则是 /dev/urandom),但都隐藏在同一个 sgcRandomBytes 调用之后,因此您的代码永远不需要根据平台分支。

43 个单元,六大能力分类

每个单元都是已编译的 Object Pascal 代码,可从任何 Delphi 7 至 13 或 C++ Builder 项目中调用。没有外部 DLL,没有 OpenSSL 绑定,也没有代码生成器:这些原语直接在您添加到 uses 子句的单元中实现。

对称加密5 个单元

AES、ChaCha20 及其上层的 AEAD 构造

sgcCrypto_AES 涵盖 CBC、GCM 和 CTR;sgcCrypto_Modes 增加了 ECB、OFB、CFB、密文窃取 CTS,以及 AES Key Wrap / 带填充的 Key Wrap(RFC 3394 / 5649);sgcCrypto_CMAC 是 AES-CMAC。sgcCrypto_ChaCha 实现了 ChaCha20、XChaCha20、Salsa20 和 XSalsa20,sgcCrypto_Poly1305 将 Poly1305 与它们配对,构成 RFC 8439 中的 ChaCha20-Poly1305 和 XChaCha20-Poly1305 AEAD 密码。sgcAES_GCM_Decrypt 和 Poly1305 验证函数都以恒定时间比较认证标签,验证失败时拒绝返回明文。

哈希与 KDF11 个单元

SHA-2、SHA-3、BLAKE2,以及所有主流 KDF

sgcCrypto_SHA2sgcCrypto_Keccak 涵盖 SHA-1/2、SHA-3、SHAKE、cSHAKE 和 KMAC;sgcCrypto_Blake2bsgcCrypto_Blake2s 增加了 BLAKE2。sgcCrypto_HMAC 是带密钥的消息认证。用于将密码转换为密钥的有:sgcCrypto_KDF(PBKDF2)、sgcCrypto_HKDFsgcCrypto_Scrypt,以及实现了全部三种 Argon2 变体(d、i 和 id,密码哈希竞赛的获胜者)的 sgcCrypto_Argon2sgcCrypto_SipHash 为哈希表键提供快速的带密钥哈希,sgcCrypto_TLSH 则是一种带相似度距离函数的模糊哈希,而非密码学摘要,可用于近似重复检测。

签名与密钥交换10 个单元

Ed25519/Ed448、X25519/X448、secp256k1、Brainpool 和 RSA

sgcCrypto_Ed25519/Ed448 负责签名和验证;sgcCrypto_X25519/X448 完成相应的 Diffie-Hellman 密钥交换。sgcCrypto_ECCurves 增加了基于 secp256k1 和三条 Brainpool 曲线的 ECDSA 与 ECDH,并采用 RFC 6979 确定性 nonce;sgcCrypto_EC 则是面向 JOSE 的姊妹单元:直接对 JWS 进行签名和验证,支持 ES256/384/512。sgcCrypto_RSA 可直接从 PEM 密钥验证 PKCS#1 v1.5 和 PSS 签名,sgcCrypto_RSA_Keys 更进一步,支持任意位长的密钥生成、OAEP 加密以及 DER/PEM 导出。sgcCrypto_ECIES 通过对 X25519 公钥进行混合封装/解封加密来补全这一分类。

sgcCrypto_Ed25519 sgcCrypto_ECCurves sgcCrypto_RSA_Keys RFC 8032 · RFC 7748 · RFC 8017
PKI5 个单元

读取、验证和生成 X.509 证书

sgcCrypto_ASN1 读取 DER 和 PEM,并解析 PKCS#1/SEC 1 密钥;sgcCrypto_DER 编写证书或 CSR 所需的每一个标签。sgcCrypto_X509 解析证书,验证它是否由指定颁发者签发,遍历并验证证书链,还能解析 CRL 以检查吊销状态。sgcCrypto_X509_Gen 可从零生成自签名证书或 PKCS#10 CSR:完整的主题和颁发者可分辨名称、有效期、带路径长度限制的 CA 标志、密钥用途标志、扩展密钥用途 OID,以及主题备用名称(包括 IP 地址 SAN)。

后量子6 个单元

ML-KEM、ML-DSA 和 SLH-DSA,外加一个混合组合器

sgcCrypto_MLKEM 是 FIPS 203 密钥封装,提供三种参数集(ML-KEM-512/768/1024),对畸形密文采用隐式拒绝。sgcCrypto_MLDSA 是 FIPS 204 签名,ML-DSA-44/65/87。sgcCrypto_SLHDSA 是 FIPS 205,覆盖全部六种 SHAKE 参数集:128s、128f、192s、192f、256s、256f。由于单独使用 ML-KEM 意味着完全押注在一个比椭圆曲线更年轻的格假设上,sgcCrypto_MLKEM_Hybrid 将 X25519 密钥和 ML-KEM 密钥组合成一个共享密钥,因此结果的安全性永远不会弱于经典的那一半,这也是整个行业正在趋同采用的迁移方案。

sgcCrypto_MLKEM sgcCrypto_MLDSA sgcCrypto_SLHDSA FIPS 203 · FIPS 204 · FIPS 205
OTP 与杂项6 个单元

一次性密码、编码以及加密的 ZIP 条目

sgcCrypto_OTP 生成并验证 HOTP 和 TOTP 验证码,也就是身份验证器应用显示的那种六位数验证码,并使用恒定时间的验证窗口来吸收时钟偏差。sgcCrypto_Encoding 保存了库中其余部分共用的工具函数:恒定时间比较、安全缓冲区清零、十六进制、Base64url 和 Base32。sgcCrypto_Zip_AE2 实现了 WinZip AES 加密(AE-1 和 AE-2),用于加密单个 ZIP 条目。sgcCrypto_Random 是库中其他位置生成的每个密钥和 nonce 背后的跨平台 CSPRNG,sgcCrypto_Legacy 则保留了 MD4/MD5/HMAC-MD5/DES-ECB,仅用于与旧格式互操作,不建议用于新设计。

没有组件,没有对象查看器

将一个单元添加到 uses 中,然后调用一个函数。下面的每一次调用都来自 43 个单元中的不同单元,涵盖对称加密、哈希、签名和后量子。

uses
  sgcCrypto_Random, sgcCrypto_AES, sgcCrypto_Keccak, sgcCrypto_Ed25519,
  sgcCrypto_MLKEM;

var
  vKey, vIV, vPlain, vAAD, vTag, vCipher: TBytes;
  vDigest, vSeed, vSignature, vMessage: TBytes;
  vPublicKey, vPrivateKey, vSharedSecret, vCiphertext: TBytes;
begin
  // AES-256-GCM: authenticated encryption in one call
  vKey    := sgcRandomBytes(32);
  vIV     := sgcRandomBytes(12);
  vPlain  := TEncoding.UTF8.GetBytes('confidential payload');
  vCipher := sgcAES_GCM_Encrypt(vKey, vIV, vPlain, vAAD, vTag);

  // SHA-3-256, one call, no context object to manage
  vDigest := sgcSHA3_256(vPlain);

  // Ed25519: sign, then verify
  vSeed      := sgcRandomBytes(32);
  vMessage   := TEncoding.UTF8.GetBytes('sign me');
  vSignature := sgcEd25519_Sign(vSeed, vMessage);

  // ML-KEM-768: post-quantum key encapsulation (FIPS 203)
  sgcMLKEM_GenerateKeyPair(mlkem768, vPublicKey, vPrivateKey);
  sgcMLKEM_Encapsulate(mlkem768, vPublicKey, vCiphertext, vSharedSecret);
end;
// includes: sgcCrypto_Random.hpp, sgcCrypto_AES.hpp, sgcCrypto_Keccak.hpp,
// sgcCrypto_Ed25519.hpp, sgcCrypto_MLKEM.hpp

// AES-256-GCM: authenticated encryption in one call
TBytes vKey    = sgcRandomBytes(32);
TBytes vIV     = sgcRandomBytes(12);
TBytes vAAD, vTag;
TBytes vPlain  = TEncoding::UTF8->GetBytes("confidential payload");
TBytes vCipher = sgcAES_GCM_Encrypt(vKey, vIV, vPlain, vAAD, vTag);

// SHA-3-256, one call, no context object to manage
TBytes vDigest = sgcSHA3_256(vPlain);

// Ed25519: sign, then verify
TBytes vSeed      = sgcRandomBytes(32);
TBytes vMessage   = TEncoding::UTF8->GetBytes("sign me");
TBytes vSignature = sgcEd25519_Sign(vSeed, vMessage);

// ML-KEM-768: post-quantum key encapsulation (FIPS 203)
TBytes vPublicKey, vPrivateKey, vSharedSecret, vCiphertext;
sgcMLKEM_GenerateKeyPair(mlkem768, vPublicKey, vPrivateKey);
sgcMLKEM_Encapsulate(mlkem768, vPublicKey, vCiphertext, vSharedSecret);
在关键之处保持恒定时间

GCM 和 Poly1305 标签检查、HOTP/TOTP 验证以及 sgcConstantTimeEquals 都以恒定时间进行比较,因此一次失败的检查不会泄露关于猜测距离正确答案有多接近的时序信息。

解封装永远不会失败

畸形的 ML-KEM 密文会产生一个伪随机密钥而不是报错,这是 FIPS 203 规定的隐式拒绝,因此攻击者无法从密文是否格式良好中获得任何信息。

Delphi 7 至 13,保持不变

不假设存在原生的 64 位整数类型。sgcCrypto_Int64TsgcBigInt 模拟了哈希、曲线和后量子单元所需的运算,因此同一份源代码可以在每个受支持的版本上编译。

没有任何东西会离开您的进程

每个函数都在进程内对您传入的数据进行运算。库中的任何地方都没有网络调用、没有遥测,也没有 eSeGeCe 中继服务。

包含在版本中,或作为独立产品包

sgcCrypto 随 sgcWebSockets Standard、Professional 和 Enterprise 免费提供。如果您只拥有 sgcWebSockets Core,它也作为独立产品包出售,单个开发者起价为 €149。所有许可证均包含完整源代码、1 年更新,以及 50% 至 70% 的续订折扣:续订一个产品包为 50%,两个为 60%,三个或以上为 70%。

sgcCrypto

€149

独立产品包。提供 Single、Team 和 Site 授权。如果您已经拥有 sgcWebSockets Standard、Professional 或 Enterprise,则免费。

  • 全部 43 个 sgcCrypto_*.pas 单元
  • 包含 sgcWebSockets Core 运行时
  • Delphi 和 C++ Builder,全部六个平台
  • 完整源代码
  • 1 年更新

已经使用 sgcWebSockets Standard、Professional 或 Enterprise?sgcCrypto 已经在您的安装程序中,无需另行订购。

查看价格并订购
3,000+Developers
20+Years
761+Components
30+API Integrations
5Platforms
30 天退款保证不满意?可在购买后 30 天内申请全额退款。 查看退款政策

无组件开销的加密能力

43 个纯函数,涵盖加密、哈希、签名、PKI 和后量子密钥交换,随时可以在您的 Delphi 或 C++ Builder 代码已经运行的任何地方使用。完整源代码,没有中继,没有 DLL。

eSeGeCe 的其他产品

将 sgcCrypto 与我们的其他 Delphi 和 C++ Builder 组件库搭配使用。

sgcWebSockets

企业级 WebSocket、HTTP/2、MQTT、AMQP 和 WebRTC 组件。Standard、Professional 和 Enterprise 均包含 sgcCrypto。

了解更多 →

sgcSign

企业级数字签名。XAdES、PAdES、CAdES 和 ASiC,支持 10 个密钥提供商和 21 个欧盟国家配置文件。

了解更多 →

sgcAuth

OAuth2 客户端和 JWT 客户端组件,外加 WebAuthn 密钥登录。作为独立产品,已包含 sgcWebSockets Core 运行时。

了解更多 →

sgcQUIC

基于 OpenSSL 3.5 原生 QUIC 引擎构建的 QUIC (RFC 9000) 与 HTTP/3 (RFC 9114) 客户端和服务器组件。

了解更多 →

sgcAI

AI、LLM 和 MCP 组件。一个聊天组件即可连接 OpenAI、Anthropic、Gemini、DeepSeek、Ollama、Grok 和 Mistral。

了解更多 →

sgcMQ

原生 MQTT 3.1.1/5.0、AMQP 0.9.1、AMQP 1.0、Apache Kafka 和 STOMP 客户端组件,捆绑 Core 运行时。

了解更多 →

sgcOpenAPI

OpenAPI 3.0 解析器和 SDK 生成器。几秒钟内将任何 OpenAPI 规范转换为强类型的 Delphi 客户端。

了解更多 →