Learn how to hash and safely store passwords using key derivation functions, with Python code examples you can run immediately.
Implement digital signatures in Python to prove a message came from a specific sender.
Understand elliptic curve cryptography well enough to use it correctly in a real project.
Choose the right symmetric encryption algorithm for a data-at-rest or data-in-transit use case using the book's comparison chapters.
This repository is the source for a free, open-source book called "Practical Cryptography for Developers," written by Svetlin Nakov. The book is aimed at software developers who want to understand how cryptography actually works in practice rather than in theory, and it includes code examples in Python and other languages throughout. The topics covered span a broad range of modern cryptographic techniques. These include hashing (turning data into a fixed-length fingerprint), message authentication codes (verifying that data has not been tampered with), key derivation functions (safely turning a password into a cryptographic key), and key exchange protocols (two parties agreeing on a shared secret without sending it directly). The book also covers symmetric encryption (where both sides use the same key), public key cryptography (where each party has a public and a private key), elliptic curve cryptography, and digital signatures (proving that a message came from a specific person). There is also a section on generating secure random numbers and a brief look at quantum-resistant approaches. The book is published under the MIT license, meaning it is free to read, copy, and modify. It has an official website at cryptobook.nakov.com where you can read it online. The README notes that the book was not fully complete at the time of writing and that some chapters were still being worked on. This GitHub repository hosts the content files for the book rather than a software application. If you are a developer curious about encryption, signing, or authentication and want practical examples rather than academic papers, this book is designed for you.
← nakov on gitmyhub — every repo by this author, as a profile.
Verify against the repo before relying on details.