← Writeuplarga qaytish

Caesar Brute Force — Barcha 26 Variantni Sinash

Caesar Oson Masala: Noma'lum Siljish NullCTF Team · 16.05.2026

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}