Skip to content

Instantly share code, notes, and snippets.

View Timo614's full-sized avatar

Tim Lovett Timo614

View GitHub Profile
import sys
MORSE_CODE_DICT = {
".-": "A", "-...": "B", "-.-.": "C", "-..": "D", ".": "E",
"..-.": "F", "--.": "G", "....": "H", "..": "I", ".---": "J",
"-.-": "K", ".-..": "L", "--": "M", "-.": "N", "---": "O",
".--.": "P", "--.-": "Q", ".-.": "R", "...": "S", "-": "T",
"..-": "U", "...-": "V", ".--": "W", "-..-": "X", "-.--": "Y",
"--..": "Z",
@Timo614
Timo614 / kryptos-k1-k3.ipynb
Last active June 6, 2025 21:10
kryptos-k1-k3.ipynb
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
#include <WiFi.h>
#include <HTTPClient.h>
#include <Seeed_Arduino_SSCMA.h>
#include <Grove_LED_Bar.h>
//change to your ssid and password
const char* ssid = "Wifi SSID";
const char* password = "Wifi Password";
//change to your token and chatid
@Timo614
Timo614 / main.py
Created June 20, 2024 21:05
Adeept Robot Control / DFRobot Gravity Offline Voice Recogition Module
import time
import board
import busio
import wifi
import socketpool
import ipaddress
import avoid_obstacles
import keep_distance
import line_tracking
from BPI_PicoW_S3_Car import Motor, Servo, I2CPCF8574Interface, LCD, LCD1602
@Timo614
Timo614 / funhouse.yaml
Created April 11, 2024 15:58
Adafruit funhouse esphome starter config
# Thanks to this configuration for the initial legwork https://github.com/kbx81/esphome-configs/blob/main/dev/esp-funhouse.yaml
esphome:
name: funhouse
friendly_name: Funhouse
platformio_options:
board_build.mcu: esp32s2
board_build.variant: esp32s2
esp32:
@Timo614
Timo614 / keys_at_negative_pre_shift.yaml
Last active November 6, 2016 05:00
Kryptos, vigenere keys at negative shifts to decode BERLINCLOCK
---
0: ELYOIECBAQK
1: FMCVJFDZNUD
2: QNKSLGECQVE
3: LQXAMTNDUTF
4: UUDBNHJEFRG
5: VPECQIQFVOH
6: WKFDUJUGWSI
7: XTPEVLVHXAJ
8: IOGFWMWIZBL
VQEDSXMRTKSKNZZGSXNLBOEWGSOFFFAVWMJGBWHYASLIVNNUHNIZEDISSNBXTOYINIAGIENBQFBVUNNQUYQNKSQLOAMTVNPPM - 0 - CHILIAST
DNRPIFLIPZICMQGVOWMJATQJFIHHOESFMGTIAZWWSIFDUCVXGELXRNXOOEAWPTRHILSILDVAVYAUQCVNWRNMZODKTJDGUCYUE - 1 - CHILIAST
CEKFLEJHYXLZDGFFTVDBSPDZULJYHDOEESPDSQZJOLOPQBMQFHFWKCKTTHSVYPNGHOIDFNMSDRSQNBMMMKMLXTCYPMGIQBRXQ - 2 - CHILIAST
BHZHFDIGRWFXGVEEPUGEIYCRWOTRJNTDQIYPIGGZTOHFNALNUDOVZBUPPDIUEYVVGTLPOCLOCKINMALLEZDJWPBWYGCDNANQV - 3 - CHILIAST
LDXYONXVKVOWCXQDYQCALRBIMTPKTCPCVLEFLVFRPTJHMSJMWCHUXAHUYCLQRRMFFPFFHBJTBZLMDSJKQXGBVYAJRSBPMSVND - 4 - CHILIAST
ACWRHCKFZUHVBFDCRNBSFKAHEPYCPBYBDORHFXEIYPTYDOILMBJQWSWXRBFNKKLEUFOHJAIPLXFLGOIYVWCEURSZKIAFDOMMC - 5 - CHILIAST
SBVKJBUEXQJUAECBKEAOOMSGQFEZYARACTKYOFQHRFPRGTXKEATNVOZQKAOMZMJDWYHYTSXUAWOJCTXWDVBAQKORZLSHGTLLB - 6 - CHILIAST
OAUCTAHDJNTQSDBAZHSTHUOVVYRXESNSBPZRHEDGKYYKCPKYQJPMUTGNZJHLXUICMRJRPOKXSVHBBPKJCUASNMTIXOIYCPJKL - 7 - CHILIAST
TJQZPSWCNEPNINASXDIGJLTFDRKWROVOLFXKJDCVZRECBYUWVMYLQPFMXMJJWLXBEKTKYTUQOUJEAYUZBQSOMUPHJTLRBYIYA - 8 - CHILIAST
PMNXYOZ
@Timo614
Timo614 / investigation.rb
Last active December 18, 2017 05:24
Scripts to Solve Vigeneres via Dictionary Attacks
ENGLISH_INDEX_OF_COINCIDENCE = 1.73
def kasiski_examination(text)
segments = []
(0..text.length-3).each do |starting_index|
segments += text[starting_index..-1].chars.each_slice(3).map(&:join)
end
segments.uniq!
# Only segments of length 3 should be kept (for the partial segments included)
segments.keep_if{|segment| segment.length == 3}