These open-source libraries provide robust implementations for data encryption, secure hashing, and cryptographic key management.
Crypto++ is a comprehensive C++ cryptographic library that implements a broad range of algorithms for symmetric and asymmetric encryption, hashing, and digital signatures. It is designed as a portable toolkit, usable across different operating systems without modification. The library distinguishes itself through its architecture: cryptographic parameters such as key size and mode are configured at compile time via C++ templates, eliminating runtime overhead. Algorithms are registered in a static factory for runtime lookup, while data processing follows a pipeline model of composable sources, filters, and sinks. Memory management is handled with secure allocation and automatic wiping to prevent leakage of sensitive data. Crypto++ covers authenticated encryption (GCM, CCM), key exchange protocols (Diffie-Hellman, ECDH), and hash-based integrity checking (HMAC, message digests). It also provides facilities for digital signature verification and secure data encryption in both symmetric and asymmetric settings.
Crypto++ is a comprehensive C++ library that provides a full suite of cryptographic primitives, including symmetric and asymmetric encryption, hashing, digital signatures, and authenticated encryption, making it a robust choice for developers.
This project is a Python cryptography library that provides a collection of cryptographic primitives and high-level recipes for implementing secure encryption and authentication. It functions as a symmetric encryption toolkit and a cryptographic hash provider, offering both a low-level cryptographic interface for building custom protocols and high-level tools for securing data. The library covers a broad range of security capabilities, including symmetric data encryption, the derivation of cryptographic keys from passwords or secret values, and data integrity verification through the generation of message digests. It allows for the implementation of cryptographic primitives to facilitate secure authentication and encryption tasks.
This library provides a comprehensive suite of cryptographic primitives, including symmetric and asymmetric encryption, hashing, and key derivation, making it a standard, developer-focused tool for implementing secure protocols in Python.
CryptoSwift is a cryptography library implemented entirely in the Swift programming language. It provides a collection of standard cryptographic algorithms for encryption, decryption, and hashing without relying on native C libraries or system frameworks. The library supports symmetric and asymmetric encryption, including RSA key generation and signature management. It features authenticated encryption schemes and the ability to generate cryptographic digests for data integrity verification. The toolset covers message authentication codes, secure key derivation from passwords, and data padding. It includes utilities for converting data between binary, string, hexadecimal, and Base64 formats. For large datasets, the library supports incremental data processing via stateful stream processing to manage memory usage.
This is a comprehensive, pure-Swift cryptographic library that provides all the requested primitives, including symmetric and asymmetric encryption, hashing, digital signatures, and key derivation functions.
Libsodium is a portable, C-based cryptographic library that provides a collection of modern primitives for encryption, decryption, digital signatures, password hashing, and secure key exchange. It is designed to facilitate secure communication and data integrity across diverse hardware architectures and operating systems. The library distinguishes itself by utilizing constant-time primitive execution to prevent side-channel attacks and employing memory-hard algorithms to increase the difficulty of brute-force password attacks. It abstracts complex mathematical operations into simplified interfaces, reducing the risk of implementation errors while ensuring that all cryptographic keys and nonces are generated using high-entropy data harvested directly from system-level sources. The project covers a broad capability surface, including authenticated encryption, symmetric and asymmetric key management, and digital message authentication. It supports data protection through padding and key derivation, allowing for the integration of secure cryptographic functions into various application components.
Libsodium is a comprehensive, industry-standard cryptographic library that provides all the requested primitives, including authenticated encryption, digital signatures, and key derivation, through a secure and easy-to-use API.
sjcl is a JavaScript cryptography library providing a collection of primitives for encryption, hashing, and encoding within a web browser. It functions as an AES symmetric encryption tool, a cryptographic hashing library, and a Base32 data encoder. The project provides implementations for the Advanced Encryption Standard to secure data through symmetric key encryption and decryption. It also enables the generation of fixed-length data fingerprints to verify information integrity and authenticity. The library covers a broader range of security capabilities, including client-side data hashing, binary data encoding, and the transformation of plaintext into ciphertext to protect sensitive information in web applications.
This library provides a collection of cryptographic primitives including symmetric encryption and hashing for web applications, though it lacks the full suite of asymmetric and digital signature features requested.
jsencrypt is a JavaScript library for performing RSA encryption, decryption, and key generation. It functions as an asymmetric key generator and digital signature provider that executes all cryptographic processing directly in the browser. The library focuses on the use of the PEM standard for importing, exporting, and managing cryptographic keys. It provides the ability to create public and private RSA key pairs of various bit sizes and supports OpenSSL compatible formats. Its capabilities cover the transformation of plaintext into ciphertext and the recovery of original messages using corresponding keys. It also enables the creation and validation of digital signatures to ensure data integrity and authenticity.
This library provides robust primitives for asymmetric encryption and digital signatures, though it is limited to RSA and lacks support for symmetric encryption or hashing.
crypto-js is a JavaScript cryptography library providing a collection of standard cryptographic algorithms and data transformation tools. It functions as a symmetric encryption toolset, a cryptographic hash implementation, and a password derivation tool for the JavaScript environment. The library enables the protection of sensitive data through symmetric encryption and the production of fixed-size data digests to verify integrity. It includes utilities for converting user passwords into secure cryptographic keys and a data format converter for translating information between Base64, Hex, and UTF-8 formats. The toolset covers broader capabilities in message integrity verification and data format transformation to ensure compatibility between different systems and protocols.
This library provides a comprehensive suite of symmetric encryption, hashing, and key derivation primitives for JavaScript, though it lacks native support for asymmetric encryption and digital signatures.
tiny-AES-c is a lightweight C language cryptography library that provides a symmetric cipher implementation of the Advanced Encryption Standard. It functions as a portable set of functions for encrypting and decrypting data using a shared secret key. The library is designed for embedded system security, enabling cryptographic operations on hardware with limited memory and processing power. It provides these capabilities without relying on large external dependencies. The implementation utilizes a standard C library approach, employing table-based substitution and in-place buffer mutation to perform data transformations.
This is a specialized C library for symmetric AES encryption that fits the category, though it is limited in scope as it focuses exclusively on symmetric ciphers rather than providing a full suite of asymmetric or hashing primitives.
This project is a comprehensive cryptographic toolkit that provides a collection of standard security algorithms and protocols for implementing data encryption and network communication. It serves as a foundational library for securing software applications through a wide range of cryptographic functions. The architecture is defined by a modular provider system that allows for the dynamic loading of external cryptographic implementations without requiring modifications to the core application binary. It supports metadata-driven algorithm querying, which resolves security primitives by matching requested properties against available provider capabilities. Furthermore, the library enables the creation of isolated security contexts, allowing different application components to maintain independent configuration states and security parameters within the same process. The toolkit includes support for FIPS-validated module encapsulation, which restricts cryptographic operations to a hardened boundary to meet strict government and industry compliance standards. It also utilizes a dispatch-table abstraction to decouple high-level security requests from underlying algorithm logic. Comprehensive technical documentation is available to assist with security operations, migration, and compliance validation.
This is the industry-standard cryptographic toolkit that provides a comprehensive suite of primitives, including symmetric and asymmetric encryption, hashing, and digital signatures, making it the definitive choice for developer-focused security implementations.
DEC is a library for Embarcadero Delphi, containing different cryptographic algorithms. It contains algorithms for these categories:
This library provides a comprehensive suite of cryptographic primitives for the Delphi ecosystem, including support for symmetric and asymmetric encryption, hashing, and digital signatures.