Your first time on this page? Allow me to give some explanations.
Awesome Cryptography
A curated list of cryptography resources and links.
Here you can see meta information about this topic like the time we last updated this page, the original creator of the awesome list and a link to the original GitHub repository.
Thank you sobolevn & contributors
View Topic on GitHub:
sobolevn/awesome-cryptography
Search for resources by name or description.
Simply type in what you are looking for and the results will be filtered on the fly.
Further filter the resources on this page by type (repository/other resource), number of stars on GitHub and time of last commit in months.
Symmetric encryption
Asymmetric encryption
Transform Encryption
Hash functions
Articles
Books
Courses
Other lists
A curated list of cryptography papers, articles, tutorials and howtos.
✨ Awesome - A curated list of amazing Homomorphic Encryption libraries, software and resources
Standalone
Safely store secrets in Git/Mercurial/Subversion
Certbot is EFF's tool to obtain certs from Let's Encrypt and (optionally) auto-enable HTTPS on your server. It can also act as a client for any other CA that uses the ACME protocol.
Coherence is cryptographic server for modern web apps
Multi-platform transparent client-side encryption of your files in the cloud
Secure end-to-end encrypted file sharing over ssh; forked from openssh.
An engine to make Tor network your default gateway
Simple and flexible tool for managing secrets
Git
Transparent file encryption in git
Playgrounds
C
Basic implementations of standard cryptography algorithms, like AES and SHA-1.
Linux Kernel Crypto API User Space Interface Library
A modern, portable, easy to use crypto library.
LibTomCrypt is a fairly comprehensive, modular and portable cryptographic toolkit that provides developers with a vast array of well known published block ciphers, one-way hash functions, chaining modes, pseudo-random number generators, public key cryptography and a plethora of other routines.
VESvault End-to-End Encryption API: Encrypt Everything Without Fear of Losing the Key
Apache milagro (Incubating)
A mirror of the nettle repository
TLS/SSL and crypto library
Great utility for computing hash sums
Easy to use cryptographic framework for data protection: secure messaging with forward secrecy and secure data storage. Has unified APIs across 14 platforms.
Small portable AES128/192/256 in C
The wolfSSL library is a small, fast, portable implementation of TLS/SSL for embedded devices to the cloud. wolfSSL supports up to TLS 1.3!
eXtended Keccak Code Package
Extremely fast non-cryptographic hash algorithm
C++
C++ Modern Cryptography Suite
free C++ class library of cryptographic schemes
An Implementation of homomorphic encryption
s2n : an implementation of the TLS/SSL protocols
C-sharp
libsodium for .NET - A secure cryptographic library
Platform crypto for portable libraries
.NET crypto done right. Professionally audited.
Stream encryption & decryption with libsodium and protobuf
Clojure
Clj-crypto is a wrapper for Bouncy Castle which allows you to easily use cryptography in your clojure app.
Fast and easy-to-use Message Digest, Checksum and HMAC library for Clojure
A Clojure library designed to generate cryptographically strong random numbers suitable for managing data such as passwords, account authentication, security tokens, and related secrets.
Common Lisp
Collection of common cryptography functions
An SSH client library for Common Lisp (Built on libssh2)
Delphi
Cryptographic library for Embarcadero Delphi and potentially for FPC as well
Synopse mORMot ORM/SOA/MVC framework
[Delphi][FPC]` Open-source crypto library written in Delphi, compatible with Free Pascal Compiler. MD5, SHA1, SHA256, CRC32, Jenkins-One-At-Time, HMAC, PBKDF1, PBKDF2, AES, DES, RC4, RC5, Salsa20.
Elixir
Elixir crypto library to encrypt/decrypt arbitrary binaries
Elixir encryption library designed for Ecto
Password hashing specification for the Elixir programming language
Erlang public_key cryptography wrapper for Elixir
TEA implementation in Elixir
Wrapper around the Erlang crypto module for Elixir.
gpg interface
POT is an Erlang library for generating Google Authenticator compatible one time passwords
An Elixir implementation of the SipHash cryptographic hash family
Erlang
Go
cryptographically secure online voting
Advanced crypto library for the Go language
Port of Google's Keyczar cryptography library to Go
Example source code for the Practical Crypto with Go book.
Easy to use cryptographic framework for data protection: secure messaging with forward secrecy and secure data storage. Has unified APIs across 14 platforms.
Haskell
Cryptol: The Language of Cryptography
OpenSSL binding for Haskell
Haskell bindings to Colin Percival's scrypt implementation.
Haxe
JavaScript
JavaScript Cryptographic Library with performance in mind.
Fast crypto toolkit for modern client-side JavaScript
Google's common JavaScript library
An easy-to-use encryption system utilizing RSA and AES for javascript.
JavaScript library of crypto standards.
Following googlecode project crypto-js, provide standard and secure cryptographic algorithms for NodeJS. Support MD5, SHA-1, SHA-256, RC4, Rabbit, AES, DES, PBKDF2, HMAC, OFB, CFB, CTR, CBC, Base64
A native implementation of TLS in Javascript and tools to write crypto-based and network-heavy webapps
The JavaScript Crypto Library provides web developers with an extensive and efficient set of cryptographic functions. The library aims to obtain maximum execution speed while preserving modularity and reusability. The library is released as open source under a BDS license.
Pure-Javascript High-level API to Emscripten-compiled libsodium routines.
A Javascript library to perform OpenSSL RSA Encryption, Decryption, and Key Generation.
Fast and dependency-free cryptographic hashing library for node.js and browsers (supports MD5, SHA1, SHA256, SHA512, RIPEMD, HMAC)
The 'jsrsasign' (RSA-Sign JavaScript Library) is an opensource free cryptography library supporting RSA/RSAPSS/ECDSA/DSA signing/validation, ASN.1, PKCS#1/5/8 private/public key, X.509 certificate, CRL, OCSP, CMS SignedData, TimeStamp, CAdES JSON Web Signature/Token in pure JavaScript.
Easy to use cryptographic framework for data protection: secure messaging with forward secrecy and secure data storage. Has unified APIs across 14 platforms.
libsodium compiled to Webassembly and pure JavaScript, with convenient wrappers.
VESvault End-to-End Encryption API: Encrypt Everything Without Fear of Losing the Key
Apache milagro
Fastest implementation of BLS12-381 in a scripting language. High-security, auditable, 0-dependency aggregated signatures / zk-snarks over pairing-friendly curve
Fastest JS implementation of ed25519 / ristretto255. High-security, auditable, 0-dependency EDDSA signatures and public keys
Noble RIPEMD160. High-security, easily auditable, 0-dep, 1-file hash function
Fastest JS implementation of secp256k1. Independently audited, high-security, 0-dependency ECDSA & Schnorr signatures.
bcrypt for NodeJs
OpenPGP implementation for JavaScript
PolyCrypt - A pure JS implementation of the WebCrypto API
High-performance pure-javascript SHA1 implementation suitable for large binary data, reaching up to half the native speed.
Stanford Javascript Crypto Library
Port of TweetNaCl cryptographic library to JavaScript
URSA - RSA public/private key OpenSSL bindings for Node.js
Java
Generalized Diffie-Hellman key exchange Java library built on top of the Vert.x framework
Easy-to-use crypto toolkit
Tink is a multi-language, cross-platform, open source library that provides cryptographic APIs that are secure, easy to use correctly, and hard(er) to misuse.
Easy to use cryptographic framework for data protection: secure messaging with forward secrecy and secure data storage. Has unified APIs across 14 platforms.
Open Source Identity and Access Management For Modern Applications and Services
A system for distributing and managing secrets
Security engine for Java (authentication, authorization, multi frameworks): OAuth, CAS, SAML, OpenID Connect, LDAP, JWT...
Password4j is a user-friendly cryptographic library that supports Argon2, Bcrypt, Scrypt, PBKDF2 and various cryptographic hash functions.
Java implementation of scrypt
Fluent builders with typesafe API for the JCA
Julia
A library that wraps OpenSSL, but also has pure Julia implementations for reference.
Wrapper around mbedtls
Julia wrapper around nettle cryptographic hashing/encryption library providing MD5, SHA1, SHA2 hashing and HMAC functionality, as well as AES encryption/decryption
A performant, 100% native-julia SHA1, SHA2, and SHA3 implementation
Lua
A collection of cryptographic primitives written in pure Lua
Fork of LuaCrypto, which enables encryption and decryption through OpenSSL
OCaml
Simple hash algorithms in OCaml
TLS in pure OCaml
Objective-C
Encrypt/Decrypt: AES. Hash: MD5, SHA(SHA1, SHA224, SHA256, SHA384, SHA512). Encode/Decode: Base64, Hex.
Easy to use cryptographic framework for data protection: secure messaging with forward secrecy and secure data storage. Has unified APIs across 14 platforms.
OpenPGP library for iOS and macOS
CCCryptor (AES encryption) wrappers for iOS and Mac in Swift. -- For ObjC, see RNCryptor/RNCryptor-objc
PHP
Laravel integration for libsodium
Simple Encryption in PHP.
Easy to use cryptographic framework for data protection: secure messaging with forward secrecy and secure data storage. Has unified APIs across 14 platforms.
TCrypto is a simple and flexible PHP 5.3+ in-memory key-value storage library
Python
Modern(-ish) password hashing for your software and your servers
Charm: A Framework for Rapidly Prototyping Cryptosystems
Quantum-resistent asymmetric key generation tool for digital signatures.
Easily encrypt data in Django
pure-python ECDSA signature/verification and ECDH key agreement
Implementation of hashids (http://hashids.org) in Python. Compatible with Python 2 and Python 3
An easy, fast lib to correctly password-protect your data
A self-contained cryptographic library for Python
Python OpenSSL wrapper. For modern cryptography with ECC, AES, HMAC, Blowfish, ...
Python binding to the Networking and Cryptography (NaCl) library
Easy to use cryptographic framework for data protection: secure messaging with forward secrecy and secure data storage. Has unified APIs across 14 platforms.
R
scrypt cryptographic functions for R
Ruby
bcrypt-ruby is a Ruby binding for the OpenBSD bcrypt() password hashing algorithm, allowing you to easily store a secure hash of your users' passwords.
Ruby FFI binding to the Networking and Cryptography (NaCl) library (a.k.a. libsodium)
Easy to use cryptographic framework for data protection: secure messaging with forward secrecy and secure data storage. Has unified APIs across 14 platforms.
Rust
the official Rust and C implementations of the BLAKE3 cryptographic hash function
Mundane is a Rust cryptography library backed by BoringSSL that is difficult to misuse, ergonomic, and performant (in that order).
End-to-end encryption and mutual authentication for distributed applications.
Highly modular & configurable hash & crypto library
Usable, easy and safe pure-Rust crypto
Axolotl Protocol Implementation
A simple, secure and modern encryption tool (and Rust library) with small explicit keys, no config options, and UNIX-style composability.
A set of cryptographic primitives for building a multi-hop Proxy Re-encryption scheme, known as Transform Encryption.
Safe, fast, small crypto using Rust
A (mostly) pure-Rust implementation of various cryptographic algorithms.
OpenSSL bindings for Rust
A modern TLS library in Rust
[DEPRECATED] Sodium Oxide: Fast cryptographic library for Rust (bindings to libsodium)
[INACTIVE] TLS 1.2 implementation in Rust
WebPKI X.509 Certificate Validation in Rust
Scala
Transform encryption library for Scala
Cryptographic primitives for Scala
Type-safe general-cryptography library - https://jmcardon.github.io/tsec/
Swift
CryptoSwift is a growing collection of standard and secure cryptographic algorithms implemented in Swift
A wrapper for Apple's Common Crypto library written in Swift.
Swift OpenSSL for OS X and Linux
A tiny and easy to use Swift class to encrypt strings using HMAC algorithms.
Safe and easy to use crypto for iOS and macOS
Easy to use cryptographic framework for data protection: secure messaging with forward secrecy and secure data storage. Has unified APIs across 14 platforms.