sgcCrypto 密码学, 纯 Pascal 实现。 无需分发 DLL。

43 个单元,没有组件,没有设计期负担:传入 TBytes ,得到 TBytes 。加密用 AES-GCM 和 ChaCha20-Poly1305,哈希与密钥派生用 SHA-3、BLAKE2 和 Argon2,签名与密钥交换用 Ed25519、X25519 和 RSA,还有 X.509 的解析与生成,以及后量子的 ML-KEM、ML-DSA 和 SLH-DSA。没有外部 DLL,没有 OpenSSL 绑定,同一份源代码从 Delphi 7 到 RAD Studio 13 无需修改即可编译。

  • Delphi 7 至 13
  • C++ Builder
  • Win32, Win64, Linux64
  • macOS, iOS, Android
  • 后量子
  • 完整源代码
sgcCrypto 快速入门:在 Delphi 中使用 sgcAES_GCM_Encrypt 和 sgcAES_GCM_Decrypt,包含随机数、密文和标签,被篡改的消息在解密时会被拒绝
  • 43个由普通函数构成的 Object Pascal 单元
  • 6个能力家族,从 AEAD 到后量子
  • 6个目标平台:Win32、Win64、Linux64、macOS、iOS 和 Android
  • 100%每个许可证均含源代码
  • 0个外部依赖,无需对齐 OpenSSL 版本
看它运行

两分钟了解 sgcCrypto。

哈希、认证加密、口令存储、签名和后量子密钥封装,每次只需一个函数调用。附解说与字幕。点击播放之前不会下载任何内容。

六大能力家族

加密、哈希、签名、颁发证书,并从容面对量子时代。

这些家族是按您正在做的事情来划分的,而不是按背后的数学原理,因此您要找的那个单元,名字就是您想构建的那样东西。

对称加密 · 5 个单元

sgcCrypto_AES 涵盖 CBC、GCM 和 CTR, sgcCrypto_Modes 增加了 ECB、OFB、CFB、密文挪用、AES-CCM 和 AES Key Wrap。ChaCha20、XChaCha20、Salsa20 和 XSalsa20 与 Poly1305 配对,组成 RFC 8439 的 AEAD 密码算法。解密会以常量时间比对认证标签,一旦校验失败就拒绝返回明文。

查看对称加密单元 →

哈希与 KDF · 11 个单元

覆盖 SHA-1、SHA-2、SHA-3、SHAKE、cSHAKE 和 KMAC,旁边还有 BLAKE2b 和 BLAKE2s。另有 PBKDF2、HKDF、scrypt,以及 sgcCrypto_Argon2 ,后者实现了 Argon2 的全部三个变体 d、i 和 id。 sgcCrypto_SipHash 是用于哈希表键的带密钥哈希, sgcCrypto_HMAC 则可基于任意摘要算法做带密钥的消息认证。

查看哈希相关单元 →

签名与密钥交换 · 10 个单元

Ed25519 和 Ed448 负责签名,X25519 和 X448 完成与之配套的 Diffie-Hellman 密钥交换, sgcCrypto_ECCurves 在七条曲线上提供 ECDSA 和 ECDH,并支持 RFC 6979 确定性随机数和 BIP-340 Schnorr 签名。RSA 密钥可使用任意位长,并以 PKCS#1 和 PKCS#8 两种形式导出 DER 或 PEM。

查看它的功能 →

PKI · 5 个单元

sgcCrypto_X509 可以解析证书、验证其签发者、遍历证书链并读取 CRL。 sgcCrypto_X509_Gen 可以生成自签名证书或 PKCS#10 CSR,包含完整的可分辨名称、有效期、CA 标志、密钥用法、扩展密钥用法和主体备用名称。

证书能力全貌 →

后量子 · 6 个单元

FIPS 203 密钥封装的全部三组参数,FIPS 204 中 ML-DSA-44、65 和 87 的签名,以及 FIPS 205 全部六组 SHAKE 参数。 sgcCrypto_MLKEM_Hybrid 把一个 X25519 秘密和一个 ML-KEM 秘密组合起来,因此共享密钥永远不会比其中的经典部分更弱。

查看后量子单元 →

OTP 与其他 · 6 个单元

sgcCrypto_OTP 可生成并验证 HOTP 和 TOTP 验证码,并以常量时间窗口容忍时钟偏差。此外还有常量时间比较、安全缓冲区清零、十六进制、Base64url 和 Base32,用于 ZIP 条目的 WinZip AES AE-1 和 AE-2,以及每把密钥背后的跨平台 CSPRNG。

OTP 与实用工具 →
代码

调用一个函数,拿回字节。

没有对象需要构造,没有上下文需要释放,也没有句柄需要一直打开。这两段代码在 Delphi 7 到 13 以及 C++ Builder 中,在每个目标平台上的编译方式都相同。

uses
  sgcCrypto_Random, sgcCrypto_AES, sgcCrypto_Keccak;
var
  vKey, vIV, vPlain, vAAD, vTag, vCipher, vDigest: 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);

  // Decryption checks the tag in constant time and fails closed
  vPlain  := sgcAES_GCM_Decrypt(vKey, vIV, vCipher, vAAD, vTag);
end;
uses
  sgcCrypto_Random, sgcCrypto_Ed25519, sgcCrypto_MLKEM;
var
  vSeed, vMessage, vSignature: TBytes;
  vPublicKey, vPrivateKey, vCiphertext, vSharedSecret: TBytes;
begin
  // Ed25519 signature from a 32-byte seed
  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);

  // The peer recovers the same secret from the ciphertext
  sgcMLKEM_Decapsulate(mlkem768, vPrivateKey, vCiphertext, vSharedSecret);
end;
  1. 把单元加入 uses 子句没有任何单元会注册组件,因此组件面板上不会多出任何东西,窗体上也不需要放置任何东西。
  2. 调用函数密钥、随机数、明文和结果全都是 TBytes。 sgcRandomBytes 在所有平台上都是同一个调用,并为每个目标平台选用相应的 CSPRNG。
  3. 放心依赖失败路径AEAD 解密以常量时间校验标签,并在失败时拒绝放行,因此被篡改的数据绝不会以明文形式返回。

在 Object Pascal 和 C++ Builder 中是同一种形态。每个单元和每个函数都列在功能矩阵中。

完整功能矩阵

购买之前

普通函数,一个内置运行时,中间没有任何黑盒。

sgcCrypto 直接实现这些密码学原语,而不是绑定到某个您还得随程序分发并对齐版本的库,因此生成一个密钥、一个摘要或一个签名都只是一次函数调用,完整源代码意味着中间没有任何一环是黑盒。

sgcCrypto 快速入门:使用 sgcArgon2id 存储口令,并用 sgcConstantTimeEquals 进行比较

口令,妥善存储

用 PBKDF2、scrypt 或 Argon2(d、i、id 三个变体均可)把口令变成密钥,然后用以下单元中的常量时间辅助函数进行比较: sgcCrypto_Encoding,这样比较过程本身就不会泄露答案。

sgcCrypto 快速入门:哈希、MAC、口令与 KDF、对称加密、公钥、后量子、证书及其他函数的完整清单

六大家族,四十三个单元

对称加密(5)、哈希与 KDF(11)、签名与密钥交换(10)、PKI(5)、后量子(6),以及 OTP 与实用工具(6)。这里没有 Tsgc* 类,也没有 sgcCrypto_Reg.pas:每个单元都只导出普通函数,可以在您自己的调试器中单步跟踪,而不是消失在某个二进制文件里。

没有平台限制

sgcVer.inc 中没有任何东西把 sgcCrypto 限制在 Windows 上。这些单元都是普通的 Object Pascal 算术运算,因此同一份源代码就能编译到 Win32、Win64、Linux64、macOS、iOS 和 Android。 sgcCrypto_Random 是唯一与平台相关的单元。

TLS 1.3 与 TLS 1.2 引擎

该软件包还包含一个基于 sgcCrypto 原语编写的 TLS 实现,位于 sgcSSL_NativeTLS* 单元中。在任意 sgcWebSockets 客户端或服务器上设置 IOHandler := iohNativeTLS ,无需部署任何东西。默认的密钥交换组列表以 X25519MLKEM768 混合组开头。

如何启用 →

对照标准验证

FIPS 197 与 202、RFC 8439、RFC 5280,以及 FIPS 203、204 和 205。ML-KEM、ML-DSA 和 SLH-DSA 的密钥生成、签名和验证,已在 sgcWebSockets QA 测试套件中对照 NIST ACVP 已知答案向量完成校验。

每个单元和每个函数 →
Licensing

您可能已经拥有 sgcCrypto。

全部 43 个单元都随 sgcWebSockets Standard、Professional 和 Enterprise 以及 All-Access 一同提供,无需额外付费。如果您只拥有 sgcWebSockets Core,或者完全没有 sgcWebSockets 许可证?独立软件包把 Core 运行时和这些密码学单元打包在一起。每个许可证均含完整源代码,并可免版税部署。

sgcWebSockets 各版本

从 Standard 版本起免费包含 sgcCrypto,与 WebSocket、HTTP/2、MQTT 以及库中的其余功能一同提供。只要您持有其中任一版本,就不必再购买任何东西。

€380 / 每位开发者

sgcCrypto 独立版

全部 43 个单元,内置 sgcWebSockets Core 运行时,面向只拥有 Core 或没有任何 sgcWebSockets 许可证的开发者。提供 Single、Team 和 Site 许可证。

€149 / 每位开发者

All-Access 套餐

一年内使用 eSeGeCe 的全部产品,涵盖 Delphi 和 .NET,包含 sgcCrypto,并附带 Premium 支持。

€1,059 / 每位开发者

免费试用版安装程序就是 sgcWebSockets All-Access 试用版,因此今天就可以评估全部 43 个单元。

查看 sgcCrypto 价格
Testimonials

开发者怎么说

受到全球各地 Delphi、C++ Builder、Lazarus 和 .NET 开发者的信赖。

你们的 sgcWebSockets 库非常实用,而且易于设置。请继续保持!
Simone Moretti Delphi 开发者
sgcWebSockets 非常出色,你们的支持也是最棒的!
Christian Meyer 创始人兼首席技术官
非常感谢你们的帮助和支持,我很喜欢你们的组件。
Mark Steinfeld CTO

字节进,字节出,全是原生代码。

43 个单元涵盖 AEAD 加密、哈希、签名、X.509 和后量子密码学,开箱即含完整源代码。

博客最新动态

查看全部文章 →

您正在浏览 eSeGeCe 的 密码学 视角。

换个角度看看 →
30 天退款保证不满意?可在购买后 30 天内申请全额退款。 查看退款政策