对称加密 · 5 个单元
sgcCrypto_AES 涵盖 CBC、GCM 和 CTR, sgcCrypto_Modes 增加了 ECB、OFB、CFB、密文挪用、AES-CCM 和 AES Key Wrap。ChaCha20、XChaCha20、Salsa20 和 XSalsa20 与 Poly1305 配对,组成 RFC 8439 的 AEAD 密码算法。解密会以常量时间比对认证标签,一旦校验失败就拒绝返回明文。
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 无需修改即可编译。

哈希、认证加密、口令存储、签名和后量子密钥封装,每次只需一个函数调用。附解说与字幕。点击播放之前不会下载任何内容。
这些家族是按您正在做的事情来划分的,而不是按背后的数学原理,因此您要找的那个单元,名字就是您想构建的那样东西。
sgcCrypto_AES 涵盖 CBC、GCM 和 CTR, sgcCrypto_Modes 增加了 ECB、OFB、CFB、密文挪用、AES-CCM 和 AES Key Wrap。ChaCha20、XChaCha20、Salsa20 和 XSalsa20 与 Poly1305 配对,组成 RFC 8439 的 AEAD 密码算法。解密会以常量时间比对认证标签,一旦校验失败就拒绝返回明文。
覆盖 SHA-1、SHA-2、SHA-3、SHAKE、cSHAKE 和 KMAC,旁边还有 BLAKE2b 和 BLAKE2s。另有 PBKDF2、HKDF、scrypt,以及 sgcCrypto_Argon2 ,后者实现了 Argon2 的全部三个变体 d、i 和 id。 sgcCrypto_SipHash 是用于哈希表键的带密钥哈希, sgcCrypto_HMAC 则可基于任意摘要算法做带密钥的消息认证。
Ed25519 和 Ed448 负责签名,X25519 和 X448 完成与之配套的 Diffie-Hellman 密钥交换, sgcCrypto_ECCurves 在七条曲线上提供 ECDSA 和 ECDH,并支持 RFC 6979 确定性随机数和 BIP-340 Schnorr 签名。RSA 密钥可使用任意位长,并以 PKCS#1 和 PKCS#8 两种形式导出 DER 或 PEM。
sgcCrypto_X509 可以解析证书、验证其签发者、遍历证书链并读取 CRL。 sgcCrypto_X509_Gen 可以生成自签名证书或 PKCS#10 CSR,包含完整的可分辨名称、有效期、CA 标志、密钥用法、扩展密钥用法和主体备用名称。
FIPS 203 密钥封装的全部三组参数,FIPS 204 中 ML-DSA-44、65 和 87 的签名,以及 FIPS 205 全部六组 SHAKE 参数。 sgcCrypto_MLKEM_Hybrid 把一个 X25519 秘密和一个 ML-KEM 秘密组合起来,因此共享密钥永远不会比其中的经典部分更弱。
sgcCrypto_OTP 可生成并验证 HOTP 和 TOTP 验证码,并以常量时间窗口容忍时钟偏差。此外还有常量时间比较、安全缓冲区清零、十六进制、Base64url 和 Base32,用于 ZIP 条目的 WinZip AES AE-1 和 AE-2,以及每把密钥背后的跨平台 CSPRNG。
没有对象需要构造,没有上下文需要释放,也没有句柄需要一直打开。这两段代码在 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;
TBytes。 sgcRandomBytes 在所有平台上都是同一个调用,并为每个目标平台选用相应的 CSPRNG。在 Object Pascal 和 C++ Builder 中是同一种形态。每个单元和每个函数都列在功能矩阵中。
sgcCrypto 直接实现这些密码学原语,而不是绑定到某个您还得随程序分发并对齐版本的库,因此生成一个密钥、一个摘要或一个签名都只是一次函数调用,完整源代码意味着中间没有任何一环是黑盒。

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

对称加密(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 是唯一与平台相关的单元。
该软件包还包含一个基于 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 已知答案向量完成校验。
每个单元和每个函数 →全部 43 个单元都随 sgcWebSockets Standard、Professional 和 Enterprise 以及 All-Access 一同提供,无需额外付费。如果您只拥有 sgcWebSockets Core,或者完全没有 sgcWebSockets 许可证?独立软件包把 Core 运行时和这些密码学单元打包在一起。每个许可证均含完整源代码,并可免版税部署。
从 Standard 版本起免费包含 sgcCrypto,与 WebSocket、HTTP/2、MQTT 以及库中的其余功能一同提供。只要您持有其中任一版本,就不必再购买任何东西。
全部 43 个单元,内置 sgcWebSockets Core 运行时,面向只拥有 Core 或没有任何 sgcWebSockets 许可证的开发者。提供 Single、Team 和 Site 许可证。
一年内使用 eSeGeCe 的全部产品,涵盖 Delphi 和 .NET,包含 sgcCrypto,并附带 Premium 支持。
免费试用版安装程序就是 sgcWebSockets All-Access 试用版,因此今天就可以评估全部 43 个单元。
查看 sgcCrypto 价格受到全球各地 Delphi、C++ Builder、Lazarus 和 .NET 开发者的信赖。
你们的 sgcWebSockets 库非常实用,而且易于设置。请继续保持!
sgcWebSockets 非常出色,你们的支持也是最棒的!
非常感谢你们的帮助和支持,我很喜欢你们的组件。
sgcCrypto 是 eSeGeCe 面向 Delphi、C++ Builder 和 .NET 的组件库之一。它们共享同样的约定,提供完整源代码,并可免版税部署。
面向 Delphi、C++ Builder、Lazarus 和 .NET 的 WebSocket、HTTP/2、MQTT、AMQP、WebRTC、AI 及 30+ API 集成。从 Standard 版本起包含 sgcCrypto。
文档使用 XAdES、PAdES、CAdES 和 ASiC,代码使用 Authenticode、ClickOnce、NuGet 和 VSIX。
面向 Delphi 和 C++ Builder 的 OAuth2 客户端、JWT 客户端和 WebAuthn 支持。
原生 QUIC 传输以及 HTTP/3 客户端和服务器,支持 WebTransport。sgcWebSockets Enterprise 的附加组件。
使用纯 Object Pascal 创建、编辑、查看、签名、涂黑并验证 PDF 文件,无需部署任何 DLL。
扩展包、附加组件及更多