For a cryptographic library for Go applications, the first results are blake3-team/blake3 (This library provides high-performance hashing, keyed hashing, and key derivation functions, serving as a specialized component for implementing these specific cryptographic primitives in Go applications), google/tink (Tink is a robust, multi-language cryptographic library that provides secure, high-level APIs for symmetric and asymmetric encryption, digital signatures, and key management, making it a strong choice for implementing security features in Go) and google/end-to-end (This is a JavaScript library for OpenPGP operations, which does not meet the requirement for a Go-based cryptographic library). weidai11/cryptopp and jedisct1/libsodium round out the shortlist. Compare the match explanations and check the project documentation against your requirements.
We curate open-source GitHub repositories matching “best go encryption libraries”. Results are ranked by relevance to your query — pick filters below to narrow, or refine with AI.
BLAKE3 is a high-performance implementation of the BLAKE3 cryptographic hash algorithm used for calculating secure data digests and fingerprints. It functions as a parallel cryptographic hash tool that distributes workloads across multiple processor threads to process large datasets rapidly. The project provides specialized tools for keyed hashing and the generation of message authentication codes. It also includes functionality for cryptographic key derivation, allowing the creation of unique secret sub-keys from a master key and context strings. The implementation supports data integrity v
This library provides high-performance hashing, keyed hashing, and key derivation functions, serving as a specialized component for implementing these specific cryptographic primitives in Go applications.
Tink is a multi-language cryptography library and security toolkit providing secure APIs for data encryption and digital signatures. It functions as a data encryption library and digital signature framework designed to prevent common implementation errors across different platforms and operating systems. The project serves as a cryptographic keyset manager, utilizing JSON for the storage, rotation, and serialization of keys to maintain consistency across various programming languages. It ensures identical cryptographic behavior globally by mapping language-specific libraries to a unified set
Tink is a robust, multi-language cryptographic library that provides secure, high-level APIs for symmetric and asymmetric encryption, digital signatures, and key management, making it a strong choice for implementing security features in Go.
This project is an OpenPGP cryptography library designed for encrypting, decrypting, and signing messages according to the OpenPGP standard for secure communication. It functions as an asymmetric encryption toolkit for securing data and managing digital identities through cryptographic operations. The library provides a cryptographic key manager to create and handle the public and private key pairs required for identity operations. It includes a digital signature implementation to ensure message authenticity and data integrity. The system covers a broad range of capabilities, including asymm
This is a JavaScript library for OpenPGP operations, which does not meet the requirement for a Go-based cryptographic library.
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,
This is a comprehensive C++ cryptographic library, but it does not meet the requirement for a library written in or for the Go programming language.
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 inter
This is a highly regarded cryptographic library, but it is written in C rather than Go, making it a building block you would need to wrap or bind to use within a Go application.
rustls is a modern implementation of the Transport Layer Security protocol written in the Rust programming language. It serves as a cryptographic transport layer for establishing encrypted connections between clients and servers to ensure data privacy and integrity. The library features a pluggable crypto provider framework, allowing the substitution of cryptographic primitive implementations to meet specific platform architecture or regulatory compliance requirements. It provides capabilities for secure server configuration to handle encrypted incoming connections and secure client connecti
This is a TLS implementation written in Rust, which does not meet the requirement for a library written in or for the Go programming language.
This is a cryptographic implementation of the Argon2 memory-hard function, serving as a password hashing library and key derivation function. It transforms passwords and salts into secure hashes and generates cryptographic keys designed to resist high-speed hardware cracking attacks. The library utilizes a memory-hard design that requires significant RAM to prevent acceleration via GPUs or ASICs. It incorporates data-independent memory access to block side-channel timing attacks and supports the integration of secret keys or peppers to protect against brute-force attacks on compromised salts.
This is a C-based implementation of the Argon2 algorithm, which serves as a building block for password hashing and key derivation rather than a comprehensive Go-native cryptography library.
This is a symmetric cryptography library written in C that provides a portable implementation of the Advanced Encryption Standard. It functions as a block cipher implementation supporting 128, 192, and 256 bit key sizes for encrypting and decrypting data. The library includes an AES cipher mode provider that supports electronic codebook, cipher block chaining, and counter modes. These operational modes are decoupled from the core block transformation to allow for different encryption patterns. The implementation utilizes static memory allocation and table-based substitution to avoid dynamic
This is a C-based implementation of AES, which serves as a low-level building block for cryptography but does not provide the Go-native interface or the comprehensive suite of cryptographic primitives required for a Go-specific security library.
GmSSL is an open-source cryptographic library that implements the Chinese national cryptographic standards SM2, SM3, SM4, SM9, and ZUC as a unified algorithm suite. It provides a comprehensive set of cryptographic primitives including symmetric and asymmetric encryption, digital signatures, hashing, and key exchange, all built around these national standards for government and enterprise security applications. The library distinguishes itself through several integration capabilities. It includes an OpenSSL compatibility layer that maps GmSSL functions to OpenSSL API calls, enabling drop-in re
This is a C-based cryptographic library focused on Chinese national standards, which does not meet the requirement for a library written in or natively for the Go programming language.
Ring is a low-level cryptographic primitive library and security toolset designed for building portable, secure applications. It provides a collection of implementations for RSA, elliptic curve cryptography, and authenticated symmetric encryption. The project focuses on constant-time cryptography to prevent secret data from leaking through timing side-channel attacks. It utilizes a formal verification tool that generates arithmetic logic from templates, ensuring mathematical correctness and eliminating manual implementation errors. The library includes capabilities for producing cryptographi
This is a low-level cryptographic library written in Rust, not Go, making it unsuitable for a developer specifically seeking native Go cryptographic implementations.
Stegcloak is a unicode steganography library and text-based data concealment tool. It provides a toolkit for hiding encrypted, compressed secret messages within standard text strings by mapping binary data to invisible, non-printing Unicode characters. The project combines a symmetric encryption toolkit with an invisible character encoder to ensure secure data concealment. It utilizes password-based key stretching and authenticated symmetric encryption to protect hidden payloads from unauthorized access and tampering. The system covers the full steganography workflow, including payload compr
This is a steganography and data concealment tool rather than a general-purpose cryptographic library, making it a specialized utility rather than a foundational security library for Go applications.
git-crypt is a transparent cryptography layer and secret manager for Git repositories. It encrypts specific files so they remain as ciphertext on remote servers while appearing as plaintext in local directories. The tool uses Git attributes to define the scope of files and directories targeted for encryption. It supports both symmetric secret key encryption for shared access and asymmetric public key encryption to control decryption permissions among multiple collaborators. The system automates the encryption and decryption process through hook-based filters that trigger during commit and ch
This is a specialized tool for encrypting files within Git repositories rather than a general-purpose cryptographic library for developers to implement security features in their own applications.
| Repository | Stars | Language | License | Last push |
|---|---|---|---|---|
| blake3-team/blake3 | 6.3K | Assembly | Apache-2.0 | |
| google/tink | 13.5K | Java | Apache-2.0 | |
| google/end-to-end |
| 4.1K |
| JavaScript |
| Apache-2.0 |
| weidai11/cryptopp | 5.4K | C++ | other |
| jedisct1/libsodium | 13.5K | C | other |
| ctz/rustls | 7.5K | Rust | NOASSERTION |
| p-h-c/phc-winner-argon2 | 5.3K | C | NOASSERTION |
| kokke/tiny-aes128-c | 5K | C | Unlicense |
| guanzhi/gmssl | 6.1K | C | Apache-2.0 |
| briansmith/ring | 4.1K | Assembly | NOASSERTION |