# Practical Cryptography for Developers

## Practical Cryptography for Developers

- [Welcome](https://cryptobook.nakov.com/master.md)
- [Preface](https://cryptobook.nakov.com/preface.md)
- [Cryptography - Overview](https://cryptobook.nakov.com/cryptography-overview.md)
- [Hash Functions](https://cryptobook.nakov.com/cryptographic-hash-functions.md)
- [Crypto Hashes and Collisions](https://cryptobook.nakov.com/cryptographic-hash-functions/crypto-hashes-and-collisions.md)
- [Hash Functions: Applications](https://cryptobook.nakov.com/cryptographic-hash-functions/hash-functions-applications.md)
- [Secure Hash Algorithms](https://cryptobook.nakov.com/cryptographic-hash-functions/secure-hash-algorithms.md)
- [Hash Functions - Examples](https://cryptobook.nakov.com/cryptographic-hash-functions/hash-functions-examples.md)
- [Exercises: Calculate Hashes](https://cryptobook.nakov.com/cryptographic-hash-functions/exercises-calculate-hashes.md)
- [Proof-of-Work Hash Functions](https://cryptobook.nakov.com/cryptographic-hash-functions/proof-of-work-hash-functions.md)
- [MAC and Key Derivation](https://cryptobook.nakov.com/mac-and-key-derivation.md)
- [HMAC and Key Derivation](https://cryptobook.nakov.com/mac-and-key-derivation/hmac-and-key-derivation.md)
- [HMAC Calculation - Examples](https://cryptobook.nakov.com/mac-and-key-derivation/hmac-calculation-examples.md)
- [Exercises: Calculate HMAC](https://cryptobook.nakov.com/mac-and-key-derivation/exercises-calculate-hmac.md)
- [KDF: Deriving Key from Password](https://cryptobook.nakov.com/mac-and-key-derivation/kdf-deriving-key-from-password.md)
- [PBKDF2](https://cryptobook.nakov.com/mac-and-key-derivation/pbkdf2.md)
- [Modern Key Derivation Functions](https://cryptobook.nakov.com/mac-and-key-derivation/modern-key-derivation-functions.md)
- [Scrypt](https://cryptobook.nakov.com/mac-and-key-derivation/scrypt.md)
- [Bcrypt](https://cryptobook.nakov.com/mac-and-key-derivation/bcrypt.md)
- [Linux crypt()](https://cryptobook.nakov.com/mac-and-key-derivation/linux-crypt.md)
- [Argon2](https://cryptobook.nakov.com/mac-and-key-derivation/argon2.md)
- [Secure Password Storage](https://cryptobook.nakov.com/mac-and-key-derivation/password-encryption.md)
- [Exercises: Password Encryption](https://cryptobook.nakov.com/mac-and-key-derivation/exercises-password-encryption.md)
- [Secure Random Generators](https://cryptobook.nakov.com/secure-random-generators.md)
- [Pseudo-Random Numbers - Examples](https://cryptobook.nakov.com/secure-random-generators/pseudo-random-numbers-examples.md)
- [Secure Random Generators (CSPRNG)](https://cryptobook.nakov.com/secure-random-generators/secure-random-generators-csprng.md)
- [Exercises: Pseudo-Random Generator](https://cryptobook.nakov.com/secure-random-generators/exercises-pseudo-random-generator.md)
- [Key Exchange and DHKE](https://cryptobook.nakov.com/key-exchange.md)
- [Diffie–Hellman Key Exchange](https://cryptobook.nakov.com/key-exchange/diffie-hellman-key-exchange.md)
- [DHKE - Examples](https://cryptobook.nakov.com/key-exchange/dhke-examples.md)
- [Exercises: DHKE Key Exchange](https://cryptobook.nakov.com/key-exchange/exercises-dhke-key-exchange.md)
- [Encryption: Symmetric and Asymmetric](https://cryptobook.nakov.com/encryption-symmetric-and-asymmetric.md)
- [Symmetric Key Ciphers](https://cryptobook.nakov.com/symmetric-key-ciphers.md)
- [Cipher Block Modes](https://cryptobook.nakov.com/symmetric-key-ciphers/cipher-block-modes.md)
- [Popular Symmetric Algorithms](https://cryptobook.nakov.com/symmetric-key-ciphers/popular-symmetric-algorithms.md)
- [The AES Cipher - Concepts](https://cryptobook.nakov.com/symmetric-key-ciphers/aes-cipher-concepts.md)
- [AES Encrypt / Decrypt - Examples](https://cryptobook.nakov.com/symmetric-key-ciphers/aes-encrypt-decrypt-examples.md)
- [Ethereum Wallet Encryption](https://cryptobook.nakov.com/symmetric-key-ciphers/ethereum-wallet-encryption.md)
- [Exercises: AES Encrypt / Decrypt](https://cryptobook.nakov.com/symmetric-key-ciphers/exercises-aes-encrypt-decrypt.md)
- [ChaCha20-Poly1305](https://cryptobook.nakov.com/symmetric-key-ciphers/chacha20-poly1305.md)
- [Exercises: ChaCha20-Poly1305](https://cryptobook.nakov.com/symmetric-key-ciphers/exercises-chacha20-poly1305.md)
- [Asymmetric Key Ciphers](https://cryptobook.nakov.com/asymmetric-key-ciphers.md)
- [The RSA Cryptosystem - Concepts](https://cryptobook.nakov.com/asymmetric-key-ciphers/the-rsa-cryptosystem-concepts.md)
- [RSA Encrypt / Decrypt - Examples](https://cryptobook.nakov.com/asymmetric-key-ciphers/rsa-encrypt-decrypt-examples.md)
- [Exercises: RSA Encrypt / Decrypt](https://cryptobook.nakov.com/asymmetric-key-ciphers/exercises-rsa-encrypt-decrypt.md)
- [Elliptic Curve Cryptography (ECC)](https://cryptobook.nakov.com/asymmetric-key-ciphers/elliptic-curve-cryptography-ecc.md)
- [ECDH Key Exchange](https://cryptobook.nakov.com/asymmetric-key-ciphers/ecdh-key-exchange.md)
- [ECDH Key Exchange - Examples](https://cryptobook.nakov.com/asymmetric-key-ciphers/ecdh-key-exchange-examples.md)
- [Exercises: ECDH Key Exchange](https://cryptobook.nakov.com/asymmetric-key-ciphers/exercises-ecdh-key-exchange.md)
- [ECC Encryption / Decryption](https://cryptobook.nakov.com/asymmetric-key-ciphers/ecc-encryption-decryption.md)
- [ECIES Hybrid Encryption Scheme](https://cryptobook.nakov.com/asymmetric-key-ciphers/ecies-public-key-encryption.md)
- [ECIES Encryption - Example](https://cryptobook.nakov.com/asymmetric-key-ciphers/ecies-example.md)
- [Exercises: ECIES Encrypt / Decrypt](https://cryptobook.nakov.com/asymmetric-key-ciphers/exercises-ecies-encrypt-decrypt.md)
- [Digital Signatures](https://cryptobook.nakov.com/digital-signatures.md)
- [RSA Signatures](https://cryptobook.nakov.com/digital-signatures/rsa-signatures.md)
- [RSA: Sign / Verify - Examples](https://cryptobook.nakov.com/digital-signatures/rsa-sign-verify-examples.md)
- [Exercises: RSA Sign and Verify](https://cryptobook.nakov.com/digital-signatures/exercises-rsa-sign-and-verify.md)
- [ECDSA: Elliptic Curve Signatures](https://cryptobook.nakov.com/digital-signatures/ecdsa-sign-verify-messages.md)
- [ECDSA: Sign / Verify - Examples](https://cryptobook.nakov.com/digital-signatures/ecdsa-sign-verify-examples.md)
- [Exercises: ECDSA Sign and Verify](https://cryptobook.nakov.com/digital-signatures/exercises-secp256k1-sign-verify.md)
- [EdDSA and Ed25519](https://cryptobook.nakov.com/digital-signatures/eddsa-and-ed25519.md)
- [EdDSA: Sign / Verify - Examples](https://cryptobook.nakov.com/digital-signatures/eddsa-sign-verify-examples.md)
- [Exercises: EdDSA Sign and Verify](https://cryptobook.nakov.com/digital-signatures/exercises-eddsa-sign-and-verify.md)
- [Quantum-Safe Cryptography](https://cryptobook.nakov.com/quantum-safe-cryptography.md)
- [Quantum-Safe Signatures - Example](https://cryptobook.nakov.com/quantum-safe-cryptography/quantum-safe-signatures-example.md)
- [Quantum-Safe Key Exchange - Example](https://cryptobook.nakov.com/quantum-safe-cryptography/quantum-safe-key-exchange-example.md)
- [Quantum-Safe Asymmetric Encryption - Example](https://cryptobook.nakov.com/quantum-safe-cryptography/quantum-safe-asymmetric-encryption-example.md)
- [More Cryptographic Concepts](https://cryptobook.nakov.com/more-cryptographic-concepts.md)
- [Digital Certificates - Example](https://cryptobook.nakov.com/more-cryptographic-concepts/digital-certificates-example.md)
- [TLS - Example](https://cryptobook.nakov.com/more-cryptographic-concepts/tls-example.md)
- [One-Time Passwords (OTP) - Example](https://cryptobook.nakov.com/more-cryptographic-concepts/one-time-passwords-otp-example.md)
- [Crypto Libraries for Developers](https://cryptobook.nakov.com/crypto-libraries-for-developers.md)
- [JavaScript Crypto Libraries](https://cryptobook.nakov.com/crypto-libraries-for-developers/javascript-crypto-libraries.md)
- [Python Crypto Libraries](https://cryptobook.nakov.com/crypto-libraries-for-developers/python-crypto-libraries.md)
- [C# Crypto Libraries](https://cryptobook.nakov.com/crypto-libraries-for-developers/c-crypto-libraries.md)
- [Java Crypto Libraries](https://cryptobook.nakov.com/crypto-libraries-for-developers/java-crypto-libraries.md)
- [Conclusion](https://cryptobook.nakov.com/conclusion.md)
