In this chapter, we will cover the following topics:
Generating an MD5 hash
Generating an SHA 1/128/256 hash
Implementing SHA and MD5 hashes together
Implementing SHA in a real-world scenario
Generating a Bcrypt hash
Cracking an MD5 hash
Encoding with Base64
Encoding with ROT13
Cracking a substitution cipher
Cracking the Atbash cipher
Attacking one-time pad reuse
Predicting a linear congruential generator
Identifying hashes
Introduction
In this chapter, we will be covering encryption and encoding in the world of Python. Encryption and encoding are two very important aspects of web applications, so doing them using Python!
We will be digging into the world of MD5s and SHA hashes, knocking on the door of Base64 and ROT13, and taking a look at some of the most popular hashing and ciphers out there. We will also be turning back time and looking at some very old methods and ways to make and break them.