To wyzwanie dla gliniarzy i rabusiów. Wątek rabusiów można znaleźć tutaj
Wyzwanie polega na napisaniu programu, który wyświetli anagram kodu źródłowego, ale nie samego kodu źródłowego.
Na przykład następujący program w języku Python:
print`'print*2``'*2`
odbitki
'print*2``print*2``'
który ma wszystkie te same znaki, co oryginalne źródło, ale w innej kolejności.
Po znalezieniu takiego programu dołącz wynik programu jako odpowiedź, pomijając program, który go generuje. Jak można się domyślić, złodzieje będą próbowali odkryć ukryty program lub dowolny program zgodny ze specyfikacją. Twoim celem jest stworzenie najkrótszego programu, którego złodzieje nie są w stanie złamać.
Zasady
Podobnie jak w przypadku większości wyzwań gliniarzy i rabusiów , jeśli twoja odpowiedź pozostanie bez odpowiedzi przez tydzień, możesz dodać zamierzone rozwiązanie do odpowiedzi i oznaczyć ją jako Bezpieczną . Po uzyskaniu bezpieczeństwa złodzieje nie mogą złamać odpowiedzi.
Nie musisz podawać języka zamierzonego rozwiązania, jednak jeśli go nie uwzględnisz, złodzieje języka mogą go złamać w dowolnym języku poprzedzającym wyzwanie, a jeśli podasz język, mogą go złamać tylko w podanym języku.
Obowiązują standardowe zasady dotyczące Quines.
źródło
Odpowiedzi:
Brain-Flak , 231 bajtów Cracked by Wheat Wizard
Oryginalny program używa
-A
argumentu.Oto liczby:
źródło
Python 2, 96 bajtów, złamany przez math_junkie
Wydajność:
Gra w golfa po raz pierwszy! Mam nadzieję, że to nie jest zbyt łatwe.
źródło
print('')
,chr() + ''
tak dalekoHaskell, 107 bajtów, Cracked by nimi
Istnieje dodatkowy końcowy znak nowej linii.
Oryginalne rozwiązanie:
Wypróbuj online!
Moją główną ideą było napisanie quinu, który sortuje własny kod źródłowy przed wypisaniem go bez użycia
sort
funkcji biblioteki . Dopiero po początkowej próbie krakingu przez Nimi przyszło mi do głowy, że kod programu może być ręcznie sortowane, ciężko zakodowana w programie, a następnie wydrukować natomiast podwojenie każdą literę. Jednak ograniczone dostępne postacie sprawiają, że to podejście jest bardziej kłopotliwe, a udane złamanie ich jest dość podobne do mojego oryginalnego programu.Wyjaśnienie:
źródło
;
na NL):i[]d=[d,d];main=print$i[]=<<"$$ ... |||"--
i wszystkich brakujących znaków po--
. Znalazłem tę wersję po mojej odpowiedzi z wątku złodziei i po tym, jak ujawniłeś swoją odpowiedź ze zmienionym wyjaśnieniem.Nieokreślony język, 124 bajty,
W temacie odpowiedzi DJMcMayhem jest to pierwsze 32 znaki ASCII (poza
0x00
) drukowane czterokrotnie. Ponieważ żaden z nich nie jest widoczny, w odpowiedzi nie podałem rzeczywistego kodu.Oto zrzut heksowy:
Tutaj jednak jest jakiś Python, który go wypisuje (i nowy wiersz), jeśli chcesz:
źródło
Pyth , 32 bajty, Cracked by math_junkie
Oryginalne rozwiązanie
Wypróbuj online!
źródło
CJam, 46 bajtów, złamany przez math_junkie
źródło
V , 21 bajtów (Bezpiecznie!)
Uwaga wiodący nowy wiersz.
Ponieważ zawiera to niedrukowalne, oto zrzut heksowy:
Aby pomóc niektórym ludziom, oto link do standardowej rozszerzalnej litery V.
Oto oryginalna wersja:
Wypróbuj online!
Wersja do odczytu to:
Działa to poprzez osadzenie sort w domyślnej rozszerzalnej quine. Kiedy zastanawiałem się nad V-quinesami z powodu tej odpowiedzi, zdałem sobie sprawę, że standardowy rozciągalny quine może być skrócony o trzy bajty, więc to rozwiązanie mogło być:
Wyjaśnienie:
źródło
Nieokreślony język, 254 bajtów Pęknięty przez @Dennis!
Wątpię, czy wygra to zwięźle, ale złamanie go będzie trudne, więc nadal warto to zrobić.
Z powodu błędu kolejność
0x0b, 0x0c, 0x0a
pomieszania się nieco się zmieniła, ale jest to z pewnością prawdziwa wydajność.Doszedłem do wniosku, że nie będę określał języka tylko po to, aby zobaczyć, w jakich różnych językach jest to możliwe. Ponieważ dane wyjściowe nie są w większości ASCII, oto zrzut danych wyjściowych:
To jest każda pojedyncza postać ASCII, z wyjątkiem
0x00
i0x0D
ponieważ spowodowały one dziwne zachowanie na TIO. Baw się dobrze cracking! >: DOryginalny kod był w V.
Wypróbuj online
Hexdump:
Zasadniczo wszystko do samej
S
tylko wstawia śmieci do bufora. Na0xEE
początku jest po to, aby upewnić się, że wszystko po nowej linii nie dzieje się w części pętli lub makra. Więc robimyźródło
Oktawa , 91 bajtów
źródło
PHP, 130 bajtów (bezpieczny)
Oryginalne rozwiązanie
Nie mogłem zrozumieć, że nie był pęknięty
źródło
Zgadnij, 43 bajty
To było trudne wezwanie do dzielenia się, jaki to był język, ale myślę, że ta opcja jest lepsza. Zauważ, że pojawia się nowa linia.
źródło