I have been making my way back through Al Sweigart’s “Cracking Codes With Python” from No Starch Press. Although the title is different, it’s actually the second edition of his earlier book “Hacking Secret Ciphers with Python,” which is available at the link as a free PDF, but which I originally studied from as a tattered paper printout.
I had forgotten, first, how much fun it is to just play around in Python and do things that aren’t strictly related to data analysis (although I suppose it really is just another branch of analysis), and, second, how much I enjoy integrating the things I learned years ago from and am no revisiting in this book years ago with all the neat tricks I’ve learned in Python since. Things such as pulling strings from a MariaDB table, encrypting them, and then writing them back to the table, or the module that I have been throwing all of the cipher functions I have modified from the code in the book (still maintaining the BSD License, of course) into a little stand-alone python program. It reminds me so much of the little script programs I wrote as a kid in BASIC, trying to mimic the interactive computer AI that I so dearly wished was a real thing (and which is now a daily reality interacting with my phone an computer through my hearing aids).
A bit of fun output from one of the ciphers:
n5Vz VE74VA4.A 4V8?VE74VH.C 3,VJ.FVzC4V.?4V.5VE74!YVs78DV8D,V7.H4G4C,VzVG4CJV zC64VzDDF!AE8.?VE7zEVEz04DVzDV68G4?VzVD8?6 4VE8!4 8?4Vz?3VDAz24V.5V4I8DE4?24YVm48E74CV2z?VH4VAC.G4VE7zEVJ.FVzC4V 8!8E43VE.VD8?6 4V8D?Ez?2EVz?3V4?E8EJ,V?.CV2z?VH4V34!.?DECzE4V2.!A 4E4 JVE7zEVJ.FVzC4V4I8DE8?6V8?VE74VDz!4VE8!4 8?4/A.8?E-.5-DAz24V2.!18?zE8.?VE7zEVH4VzC4V8?7z18E8?6YVx.FVzC4V48E74CVG4CJVC4z V.CVD.!4V346C44V.5V?.E-BF8E4-D.-C4z Y
There isn’t really a point in my post, except to share how much I am enjoying revisiting this content after having grown as a programmer. If you are a beginner to intermediate Python user, or even an advanced programmer with an interest but little experience in ciphers, this book is definitely for you.