Hands-On Cryptography with Java

Security is paramount for any application. Cryptography occurs all across software fields: it protects all HTTPS traffic between browsers, encrypts phone storage against prying eyes, and can even hide files inside other files through a technique called steganography. This course is for developers looking to design a system that uses cryptography, rather than designing new algorithms. Most developers simply need to put the right pieces together to make their own system work.

In this course, you will break down the concepts behind cryptography into simple lessons, covering terminology, algorithms, standards, and encryption/decryption techniques. We will also walk through how cryptographic systems are hacked to bypass (rather than break) their cryptographic capabilities.

By the end of this course, you will recognize cryptographic problems and understand the right knowledge to apply a verifiable solution.

This course focuses on problems, solutions, and examples. Each scenario explains the problem being solved, the role of cryptography used in solving that problem, and then provides a copy-able demonstration of the solution. All examples are self-contained projects with just enough code to be clear, concise, and legible for new to mid-level developers.

What You Will Learn

Develop applications that use an existing reliable cryptography

Build complex integrations with other systems, taking advantage of worldwide public key infrastructures and certificates

Identify hacking risks in your own and other cryptographic systems and how to fix them

Discover cryptographic terms used to describe any system you work on or with

Cryptographic Introduction
1 The Course Overview
2 Goals of Cryptography and Where It Is Used
3 History of Cryptography and Why You Shouldn’t Build New Algorithms
4 The Architectural Layout of Modern Cryptography
5 Concepts That Will Be Important Later

Basic Ciphers
6 Symmetric Ciphers and Where They Are Used
7 Basic Encryption with Symmetric Ciphers
8 Hashing and MessageDigest For Validations
9 Common Security Flaws When Using Symmetric Ciphers

Advanced Ciphers, Asymmetric, and Public Key
10 This section will cover how asymmetric cryptography works and functions in this global communication mechanism, with regards to
11 Creating A KeyPairGenerator Instance
12 Storing the Java KeyStore
13 Java KeyTool
14 Creating A KeyGenerator Instance
15 Basic Encryption with Asymmetric Ciphers
16 What to Do When PKIX Validation Fails
17 Java Certificate Chains
18 The Key Escrow Problem