Table of contents

Learn Python through cryptography my review of Cracking codes with Python

Learn Python through cryptography my review of Cracking codes with Python

Who hasn’t been tried to be convinced to invest in multi-level Bitcoin marketing? I have, but hopefully it will never happen to you. Thanks to Bitcoin, cryptography is on everyone’s lips lately, especially in the discourse of unscrupulous marketers, but cryptography is not recent, it has been in use for centuries; programming and coding only made it much faster and more efficient. The first time I read about cryptography was in the novel Cryptonomicon, where the idea of cryptocurrencies was already being discussed long before the appearance of Bitcoin. Today I come to tell you about Cracking Codes with Python, a book that uses cryptography to explain Python. This book teaches you basic Python from scratch while giving an overview of cryptography through history, with everything and Alan Turing included.

If you have no idea what cryptography is, you can take this rather simple definition: cryptography is the practice of creating and understanding codes that keep information secret. Very much in the style of the movies “A brilliant mind”, “The imitation game” or the aforementioned Cryptonomicon.

Learn python with cryptography

Codes with secret information? Like secret messages? Yes, messages that if someone were to read, they wouldn’t know what they mean. Look at these examples, do you already know what message each one hides?

# Cifrado César
Ujsiyru bq gqbqriq kfcqku ud bfj sfcudkqiyfj jy gltyjku tujsyviqi ub kuñkf

The one above is very simple to decipher. This one is even more complicated but a piece of cake for any modern computer. Each text was created using a different encryption method.

# Cifrado Vigenère
Mbza btx cj i yomncm oom gfzr ihggtvitnvl gnth kpr vkymqbal iem. Culn kpr qxs zv gnx wfuzkgnj.

In the book I am going to tell you about today, the author explains different encryption methods that have been used throughout history, such as the Caesar cipher, Vigenère, transposition, affine transformation, one-time use ciphers or the famous and currently used RSA cipher. The author will show you how to use Python to create encrypted messages and, once created, will teach you how to decrypt them by brute force, lexical analysis and other more sophisticated methods.

Cracking Codes with Python assumes you know absolutely nothing about Python, it will use cryptography to teach you the basics about strings, lists, dictionaries, functions, sets, as well as their respective methods. This makes the introduction to the language much more enjoyable, as it is not a review of the documentation, but a completely practical application. However, because the book focuses only on the cryptographic part, you will not see any GUI, web scraping, API creation, external Python libraries (except pyperclip), or any other modern applications of the language.

This book is completely free for you to read in its entirety, to read it go to the author’s official website

My opinion

In my opinion Cracking Codes with Python is good material if any of the following assumptions are met:

  • You want to learn the basics of Python
  • You want to know the history of cryptography
  • You are a history and technology enthusiast

On the other hand, regardless of the above, I recommend you to read the RSA encryption chapter as I believe that the operation of public and private keys is something that everyone involved in web development should know.

Recommended Prior Knowledge: Basic Mathematics Recommended to read: 6/10 Languages: English

Go to my post about Python immersion to read about another great book for learning Python from scratch.

Eduardo Zepeda
Web developer and GNU/Linux enthusiast always learning something new. I believe in choosing the right tool for the job and that simplicity is the ultimate sophistication. I'm under the impression that being perfect is the enemy of getting things done. I also believe in the goodnesses of cryptocurrencies outside of monetary speculation.
Read more