#### Overview of this book

Cryptography is essential for protecting sensitive information, but it is often performed inadequately or incorrectly. Hands-On Cryptography with Python starts by showing you how to encrypt and evaluate your data. The book will then walk you through various data encryption methods,such as obfuscation, hashing, and strong encryption, and will show how you can attack cryptographic systems. You will learn how to create hashes, crack them, and will understand why they are so different from each other. In the concluding chapters, you will use three NIST-recommended systems: the Advanced Encryption Standard (AES), the Secure Hash Algorithm (SHA), and the Rivest-Shamir-Adleman (RSA). By the end of this book, you will be able to deal with common errors in encryption.
Title Page
Packt Upsell
Contributor
Preface
Free Chapter
Obfuscation
Hashing
Strong Encryption
Other Books You May Enjoy
Index

## Challenge 2 – base64

After a `base64` review, we'll perform an example to show you how to decode some obfuscated text, and then we have one simple and one hard challenge for you.

Here is the `base64` review:

`base64` encoding text makes it longer. Here's the sample text to decode:

`U2FtcGxliHRleHQ=`

It decodes into the string sample text. Let's take a look at that.

Refer to the following steps:

1. If you run `python` in immediate mode, it will do four simple jobs:
`\$ python`
1. So, if we take `ABC` and encode it with `base64`, we get this string:
```>>> "ABC".encode("base64")
'QUJD\n'```
1. If we decode that with `base64`, we get back to the original text:
```>>> "QUJD".decode("base64")
'ABC'```
1. So, the challenge text is as follows, and if you decode it, you get the string sample text:
```>>> "U2FtcGxliHRleHQ=".decode("base64")
'Sample text'```
1. So, that will do for simple case; your first challenge looks like that:
`Decode this: VGhpcyBpcyB0b28gZWFzeQ==`
1. Here's a long string to decode for your longer challenge:
```Decode this:
VWtkc2EwbEliSFprVTJeFl6SlZaMWxUUW5OaU1qbDNVSGM5UFFvPQo=```

This long string is so long because it's been encoded by `base64` not just once but several times. So, you'll have to try decoding it until it turns into something readable. In the next section, we'll have Challenge 3 – XOR.