Alright, take a look at the two versions of Starry Night above. They look the same, right?
There’s a Shel Silverstein poem in one of them. It’s chilling out in the different red values of the pixels in the upper left hand corner on the second Starry Night. I love this method of hiding messages.
If you convert letters into numbers, you can use those to make pixel color changes that are pretty darn subtle. Then when you send your encoded image to anyone with the original, they can use Processing to pull the message out.
Continue reading “Processing: How to Hide Messages in Images”
I recently picked up a book called “Ghost in the Wires: My Adventures as the World’s Most Wanted Hacker” by Kevin Mitnick. To be totally honest, I’d never heard of Mitnick before. He was a little before my time—when he was arrested in 1995, I was still struggling to understand why the hell I had to learn fractions and everything I knew about computers was based on WarGames.
Continue reading “VBA: How to Code a Letter Frequency Chart”
Ok, I’ve been dancing around dictionaries in VBA for weeks—mainly because they seemed confusing. And I’m lazy. Turns out, they are supremely helpful storage devices. If say, you want a randomly ordered alphabet (otherwise known as a deranged alphabet) for a simple substitution cipher, the easiest way to store each letter with it’s new associated value is with a dictionary.
Continue reading “VBA: How to Use Dictionary Objects in Excel”
Imagine you have a combination lock with 4 digits. If you wack your head against a car hood by accident and forget the combination, this means you have a problem with 255 wrong answers and 1 right one. If you had a few days to spare, you could try all of them. The marvelous thing about computers is that they can, quite easily, auto-generate all 256 possibilities and beat the lock senseless with them. Until it opens.
That’s a brute force attack.
Continue reading “VBA: How to Crack the Caesar Shift with Brute Force”
I’ve been reading Code Breakers by Rudolf Kippenhahn. What hooked me into it was the part about the Wheel Cipher, a device envisioned by Thomas Jefferson in the late 1700’s. You can see Jefferson’s note about the wheel in his very own, genuinely awful handwriting here.
Continue reading “Processing: How to Code A Wheel Cipher Layout”
Well, I’ve clearly been doing graphics wrong ALL MY LIFE because I never knew Processing was a thing. Now that I’m aware, I’m attempting to rewire my brain for it.
Continue reading “Processing: How to Code a Grayscale Cipher”
I like shift ciphers as much as the next guy but Caesar is just so damn obvious. If you’re sending a giant wall of nonsense letters to a friend in an email, you might as well wave a giant neon-colored flag around that says “HEY I’M A SHADY BASTARD” to any third parties that might stumble upon it.
A proper cipher should have some form of camouflage. Like a sweet little house on a hill. With fireflies hanging out.
Continue reading “Python: How to Cipher in Blender”
So Hopper’s Amazing Decipherer Script 1.0 was about 472 lines because it included ELSE IF clauses for every letter in the alphabet.
HADS 2.0 cuts it down to 77 lines because arrays, as it turns out, are incredibly useful when paired with loops.
Making a Rotated Alphabet
Deciphering a Caesar cipher requires that the alphabet be moved up by a certain number. Like so.
Notice that this is basically a 2-step process. Turn the letters of the alphabet into numbers 1-26. Then add the rotational value to each of them to find their new positions, in the code below that’s assigned to a variable called indexVar. In ROT1, A =1 and the rotational value is 1, so A = 1+1 = 2.
But what happens when you hit Z? Z=26 and the rotation is 1, so Z = 26+1 = 27.
So, you want to tell the computer IF the number goes above 27, then you want to reset it to 1 and continue.
A Slow Motion Loop
Continue reading “AHK: Visualizing ELSE/IF with Arrays”
Arrays are a damn godsend. More specifically, they’re an easy way to deal with large lists. Why is this useful you ask? Imagine you want to run the same code on multiple items. The items could be numbers, letters, words, full sentences—anything. By putting those things in a list, or an array, you can loop through hundreds, even thousands, of items with just a few lines of code.
Continue reading “AHK: What is an Array?”