Caesar Brute Force — Barcha 26 Variantni Sinash
Masala tahlili
Siljish noma'lum. 26 ta variantning barchasini sinash kerak.
Berilgan: AHYY{oehgr_sbepvat_pnrfne}
Fikrlash jarayoni
Caesar shifrida faqat 26 ta kalit bor (siljish 0-25).
Barcha variantlarni ko'rish mumkin — brute force!
Bosqichma-bosqich yechim
1-qadam: Barcha siljishlarni sinash
def caesar_decrypt(text, shift):
result = []
for char in text:
if char.isalpha():
base = ord('A') if char.isupper() else ord('a')
result.append(chr((ord(char) - base - shift) % 26 + base))
else:
result.append(char)
return ''.join(result)
ct = "AHYY{oehgr_sbepvat_pnrfne}"
for shift in range(26):
candidate = caesar_decrypt(ct, shift)
if candidate.startswith("NULL"):
print(f"Siljish {shift}: {candidate}")
2-qadam: NULL{ ni izlash
Siljish 13 da NULL{ ko'rinadi (bu ROT13!)
Python script
#!/usr/bin/env python3
def caesar_decrypt(text, shift):
result = []
for char in text:
if char.isalpha():
base = ord('A') if char.isupper() else ord('a')
result.append(chr((ord(char) - base - shift) % 26 + base))
else:
result.append(char)
return ''.join(result)
ct = "AHYY{oehgr_sbepvat_pnrfne}"
print("Barcha variantlar:")
for shift in range(26):
result = caesar_decrypt(ct, shift)
marker = " ← FLAG!" if result.startswith("NULL") else ""
print(f" [{shift:2d}] {result}{marker}")
Yakuniy flag
NULL{brute_forcing_caesar}