# Cracking Codes Resources

Chapter 1

Morse Code
https://en.wikipedia.org/wiki/Morse_code

Online Cipher Wheel
https://inventwithpython.com/cipherwheel/

Adding and Subtracting with Negative Numbers
https://inventwithpython.com/chapter12.html#_Toc405145134

Chapter 2

Common Python Error Messages
https://inventwithpython.com/blog/2012/07/09/16-common-python-runtime-er...

Chapter 3

Online Diff Tool
https://inventwithpython.com/cracking/diff/

Chapter 5

Pyperclip Module
https://inventwithpython.com/pyperclip.py

Chapter 7

Trace for helloFunction.py
https://goo.gl/KzXaRr

Trace for transpositionEncrypt.py
https://goo.gl/b5nTeu

Chapter 9

https://docs.python.org/3/library/random.html#random.SystemRandom

Chapter 10

https://automatetheboringstuff.com/chapter15/

Chapter 13

Euclid's Extended Algorithm
https://en.wikipedia.org/wiki/Extended_Euclidean_algorithm

Chapter 16

The number of simple substitution cipher keys is 26 x 25 x 24 x ... x 1 or 26! ("26 factorial") or 403,291,461,126,605,635,584,000,000. This comes from the fact that simple substitution keys are a random ordering of the 26 letters of the alphabet. When creating a simple substitution key, there are 26 possible letters to choose from for thefirst letter of the key. For the second letter of the key, there are 25 remaining letters to choose from. The third letter of the key can be one of 24 letters, and so. This means the number of possible combinations is the product of the numbers 26 to 1, or 403,291,461,126,605,635,584,000,000.

Chapter 17

https://automatetheboringstuff.com/chapter7/

Chapter 23

List of Encryption Software
https://en.wikipedia.org/wiki/Comparison_of_disk_encryption_software

https://en.wikipedia.org/wiki/Cryptocurrency

https://en.wikipedia.org/wiki/Public_key_infrastructure