For a java library for data encryption, the strongest matches are google/tink (Tink is a robust, high-level cryptographic library that provides), google/end-to-end (This is a JavaScript library for OpenPGP operations, which) and weidai11/cryptopp (This is a C++ library rather than a Java). agwa/git-crypt and guanzhi/gmssl round out the shortlist. Each is ranked by relevance to your query, popularity and recent activity.
We curate open-source GitHub repositories matching “best java encryption libraries”. Results are ranked by relevance to your query — pick filters below to narrow, or refine with AI.
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, high-level cryptographic library that provides secure, easy-to-use APIs for symmetric and asymmetric encryption, digital signatures, and comprehensive key management.
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 Java-based cryptography 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 C++ library rather than a Java library, making it a building block for native integrations rather than a native solution for your Java application.
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 Java cryptography library for application-level data security.
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, and while it provides JNI bindings, it is not a native Java library designed for general-purpose Java application security.
Signal-iOS is an encrypted messaging client that provides secure communication for voice calls, media, and text. It functions as a complete implementation of the Signal Protocol, utilizing end-to-end encryption to ensure that only intended recipients can access transmitted data. The application distinguishes itself through the integration of advanced cryptographic standards, including the use of elliptic curve cryptography for identity verification and digital signature validation. It employs a double ratchet key exchange mechanism to rotate encryption keys for every individual message, ensur
This is a complete messaging application written in Swift rather than a Java library, making it an unsuitable tool for implementing cryptographic functions in a Java-based application.
Ente is a privacy-focused platform for end-to-end encrypted storage and two-factor authentication management. It functions as a zero-knowledge identity provider, ensuring that all cryptographic operations, key derivation, and data encryption occur locally on the user's device. By maintaining this architecture, the service provider remains unable to access or decrypt any stored personal information or authentication credentials. The platform distinguishes itself through a combination of on-device intelligence and resilient data distribution. It utilizes a local machine learning engine to perfo
This is a privacy-focused end-to-end encrypted storage application rather than a general-purpose Java cryptography library for developers to integrate into their own projects.
Signal-Android is an end-to-end encrypted messaging platform designed to ensure that only the sender and recipient can access communication content. The project provides a comprehensive framework for secure, asynchronous message initiation and key agreement, allowing users to establish private channels without requiring simultaneous online presence. It relies on a state machine architecture to manage communication epochs and authentication, ensuring consistent security transitions throughout the messaging lifecycle. The platform distinguishes itself through a hybrid cryptographic approach tha
This is a complete end-to-end encrypted messaging application rather than a general-purpose Java cryptography library, making it a complex system to integrate if you only need specific cryptographic primitives.
iron-session is a stateless session management library for JavaScript that stores encrypted and signed session data directly in browser cookies. It functions as authentication middleware to verify user identity without requiring a server-side database or network lookups for session retrieval. The project provides a symmetric key encryption tool that supports versioned password rotation. This allows encryption keys to be updated across a system without invalidating active user sessions. Beyond session management, the library includes utilities to seal arbitrary data objects into secure signed
This is a JavaScript-based session management library for web applications, which does not provide the Java-native cryptographic primitives or general-purpose security abstractions required for your project.
Sealed Secrets is a Kubernetes secret encryption tool and controller designed for GitOps security. It provides a mechanism to encrypt sensitive data into specialized resources that can be safely stored in public version control systems and decrypted only within a cluster. The system uses an asymmetric encryption manager to seal secrets with a public key, ensuring that only the corresponding private key held within the cluster can unseal them. It includes utilities for security key rotation, secret re-encryption, and offline private key recovery to maintain data access during disaster recovery
This is a Kubernetes-specific tool for managing secrets in GitOps workflows rather than a general-purpose Java cryptography library for application-level data security.
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 C-based cryptographic library rather than a Java library, meaning it would require JNI or JNA wrappers to be used within a Java application.
bitcoinj is a Java library and software development kit for integrating Bitcoin blockchain functionality into applications. It provides a foundation for implementing blockchain clients and managing digital wallets, allowing for the programmatic tracking of blockchain state and transaction histories. The project includes tools for creating and maintaining keychains and wallets, supported by a command-line interface for administrative wallet management and blockchain state synchronization. The library covers core cryptographic and structural primitives, including deterministic key derivation,
This is a specialized SDK for Bitcoin blockchain integration and wallet management rather than a general-purpose cryptographic library for application-level data security.
| Repository | Stars | Language | License | Last push |
|---|---|---|---|---|
| google/tink | 13.5K | Java | Apache-2.0 | |
| google/end-to-end | 4.1K | JavaScript | Apache-2.0 | |
| weidai11/cryptopp | 5.4K | C++ | other | |
| agwa/git-crypt | 9.7K | C++ | GPL-3.0 | |
| guanzhi/gmssl | 6.1K | C | Apache-2.0 | |
| signalapp/signal-ios | 12.1K | Swift | AGPL-3.0 | |
| ente-io/ente | 27.3K | Dart | AGPL-3.0 | |
| signalapp/signal-android | 29K | Kotlin | AGPL-3.0 | |
| vvo/iron-session | 4.1K | TypeScript | MIT | |
| bitnami-labs/sealed-secrets | 8.9K | Go | apache-2.0 |