Build an end-to-end encrypted to-do list
Learn how to encrypt content in the browser, and how to use multiple devices to decrypt your data while keeping your cryptographic keys secure.
End-to-end encryption ensures data is encrypted on the sender’s device and only decrypted by the intended recipient, preventing any third party access.
Tools like Signal Messenger and Proton Mail show that it’s possible to create useful, privacy-preserving software, and this course walks through the fundamentals those apps rely on by building an example of an encrypted simple web app.
If you’re building software, managing sensitive user data, or simply want to protect your own information, understanding encryption is crucial.
Protect your data from being accessed and or exploited if stored in plain text.
What you’ll learn
Asymmetric (RSA & ECC) and Symmetric Encryption
Learn how to create and store asymmetric keypairs securely in the browser, and encrypt with AES.Decrypt data on multiple devices
Add additional devices to user accounts with server-less Web Sockets.How to store keys in the browser
Use IndexedDB to store keys securely on the local device.Identity management
Use public key cryptography to define user identity.
Who is this course for?
This course is intended for people who already know the fundamentals of programming on the web. You should feel comfortable working with Javascript. No prior experience with cryptography is required.
Whether you’re a professional software engineer shipping production code, or an indie hacker who wants to augment their skills, you’ll leave with knowledge of how to handle data securely.
Outcome
- Uses browser-based encryption
- Manages keys in the browser
- Synchronizes encrypted data between devices
- Stores user data locally
- Backs up encrypted data on a server
Included with purchase
- Written how-to guides with examples / code snippets
- Github repo with source code
- Access to a private Discord server for questions