Это нить полицейских. Нить грабителей здесь .
Ваша задача - написать программу или функцию, которая с определенным вводом печатает точную строку Hello, World!
и символ новой строки. Прописная буква, пробел и пунктуация должны быть точными.
Ввод может осуществляться через стандартный ввод, файл или аргументы командной строки / функции. Вывод может быть дан через возвращаемое значение, запись в файл или стандартный вывод.
Ваша программа должна печатать Hello, World!
хотя бы для одного ввода. Когда вашей программе дается неправильный ввод (т. Е. Ввод, который не позволяет печатать Hello, World!
), она может делать все что угодно - вылетать, печатать случайные глупости, вызывать Чака Норриса и т. Д.
Вы не можете использовать алгоритм хеширования или любые другие подобные методы, чтобы скрыть требуемые данные.
Материалы , являются предпочтительными , чтобы быть работоспособным и crackable на TIO . Материалы, которые нельзя запустить или взломать на TIO, разрешены, но, пожалуйста, включите инструкции для их загрузки / запуска.
Через неделю этот вызов будет закрыт для будущих копов. Победителем является самый короткий код, который не взломается после недели его публикации («это» - код, а не этот вызов). Победитель будет принят через две недели.
После того, как прошла неделя с момента публикации, отметьте свой ответ как безопасный и покажите ввод (в > ! spoiler quote
). Если грабитель взломает ваше представление (до конца недели), отметьте его как взломанное и покажите вводные данные остановки (в a > ! spoiler quote
).
Ищете необработанные материалы?
fetch("https://api.stackexchange.com/2.2/questions/137742/answers?order=desc&sort=activity&site=codegolf&filter=!.Fjs-H6J36vlFcdkRGfButLhYEngU&key=kAc8QIHB*IqJDUFcjEF1KA((&pagesize=100").then(x=>x.json()).then(data=>{var res = data.items.filter(i=>!i.body_markdown.toLowerCase().includes("cracked")).map(x=>{const matched = /^ ?##? ?(?:(?:(?:\[|<a href ?= ?".*?">)([^\]]+)(?:\]|<\/a>)(?:[\(\[][a-z0-9/:\.]+[\]\)])?)|([^, ]+)).*[^\d](\d+) ?\[?(?:(?:byte|block|codel)s?)(?:\](?:\(.+\))?)? ?(?:\(?(?!no[nt][ -]competing)\)?)?/gim.exec(x.body_markdown);if(!matched){return;}return {link: x.link, lang: matched[1] || matched[2], owner: x.owner}}).filter(Boolean).forEach(ans=>{var tr = document.createElement("tr");var add = (lang, link)=>{var td = document.createElement("td");var a = document.createElement("a");a.innerHTML = lang;a.href = link;td.appendChild(a);tr.appendChild(td);};add(ans.lang, ans.link);add(ans.owner.display_name, ans.owner.link);document.querySelector("tbody").appendChild(tr);});});
<html><body><h1>Uncracked Submissions</h1><table><thead><tr><th>Language</th><th>Author</th></tr></thead><tbody></tbody></table></body></html>
sha3
попадает в эту категорию, но в противном случае, где вы проводите черту? Я имею в виду, чтоmod 1e3
это также хеш-функция, и я бы даже пошел дальше и утверждал, что многие из представленных документов будут хеш-функциями, так как эта задача в основном требует такого.Ответы:
Python 3,
191186 байт (БЕЗОПАСНО!)То же, что и мой предыдущий ответ, но без утверждения noob eval, так что кто-то действительно должен решить проблему, которую я создал.
Теперь выполните его с правильными параметрами, такими как
python3 hw.py 1 2 3
Редактировать : в предыдущей версии отсутствовала запятая в «Hello, World!», А также я понял, что в ней есть ненужная нумерация, которая теперь исчезла.
Редактировать 2 : просто для забавы, вот почти идентичная версия Pyth (47 байт) того же кода:
Входные данные взяты из
stdin
и представлены в форме списка аргументов, таких как[1,2,3]
Я не вижу смысла публиковать отдельный ответ, потому что если вы взломаете версию Pthyon3, то вы также взломаете версию Pyth, даже не зная Pyth.
Ответ:
Объяснение кода:
Придя к решению, в python:
источник
literal_eval()
вast
модуле можно безопасно вычислять выражения, чтобыprint(
проблема внедрения кода не работала. Это, наверное, не имеет значения, но я просто подумал, что упомяну это.Hello, World!
? Еще не взломали, но похоже, что пропущена запятая (только 12 итераций в цикле соединения)TeX - 38 байт, взломанный (ish)
Это стоит того, потому что я не могу представить, чтобы кто-нибудь на сайте о написании коротких фрагментов кода знал бы TeX:
Чтобы запустить его, вы должны получить некоторую форму TeX, которая позволяет интерактивный режим. Сохраните это в файл и запустите на нем TeX (или pdfTeX, XeTeX и т. Д.).
Редактировать: в настоящее время я рассматриваю это полу-трещины. Предполагаемое решение использует входные данные из stdin, но Texnical входные данные от того, как вызывается программа, действительны. Я буду добавлять более коварные ответы TeX, если кто-то получит предполагаемый метод.
Вот предполагаемое решение:
Это может быть закулисным, но все же должно быть в правилах игры.
источник
tex \ Hello, world!\bye
(23 байта)?texnically
о Боже.> <> , 538 байт, взломано rexroni
Попробуйте онлайн , или вы можете использовать рыбную площадку .
Первые три строки читаются в строке из STDIN и используют его коды модов 26 в качестве координат, чтобы поместить символы "
>/v>v\v</>
" в лабиринт ниже. Предполагаемое решение - это строка из 20 символов, состоящая только из букв A – Z (хотя, конечно, вы можете использовать все, что захотите).Решение:
источник
Октава, 59 байт, трещины
Это работает в октаве 4.2.0. Я не могу гарантировать совместимость со всеми версиями.
Примечание: это не печатает пробелы или переводы строки. Вот как это выглядит:
Он в основном говорит: «Напечатайте входную строку, если на входе нет« Hello, World! », В этом случае он не должен ничего печатать (или нулевой символ).
источник
%c
означает string или char ... может быть, вы что-то скрываете? Кроме того, это*~
делает меня немного подозрительным ...\n
. Я думал, что текст вопроса сказал « необязательный трейлинг-перевод строки ».CJam , 7 байт ( взломан )
Попробуйте онлайн!
Предполагаемый ввод:
источник
MATL , 6 байтов. Трещины
Попробуйте онлайн!
источник
['Hello,' 1 'World!']
. Зачем обманывать? :-( Документ / справка дляD
говорит, что большинство вводимых символов ниже 32 заменены пробеломВзорваться , 23 байта, трещины
Еще впереди, это только начало> :)
Попробуйте онлайн!
Explorer Explanation
В этой программе четыре исследователя. Я не совсем уверен, что wait (
>
) работает правильно.Прочитайте ввод данных пользователем (
?
), запишите и разверните ленту (@
) вниз (_
).Для 4 тиков (
4
) измените ленту (&
) вниз (_
), прыгнув на 5 (5
), вычитая (-
) 19 (j
).Для 16 тиков (
f
) измените ленту (&
) вверх (^
) в волне (~
), чередуя без эффекта, +13, без эффекта и -13 (c
).Для 6 тиков (
6
) измените ленту (&
) в обоих направлениях (|
), уменьшая (\
) на 4 (4
) каждый раз и прыгая на 7 (7
). Уменьшение означает, что оно вычитает 4 в первый раз, 8 во второй раз и т. Д.источник
JavaScript (ES6),
173169163150151148143 bytes (Cracked)Let's have something totally different... and totally evil.
Usage:
f(something) // returns 'Hello, World!'
Try it online!
источник
C# (.NET Core),
130152 bytes, CRACKED+22 bytes, I forgot about trailing newline... Program works the same as before, the newline is added to any output.
Try it online!
Byte count also includes
For a start I went for something not too crazy. It can has multiple answers.
The "official" crack:
источник
tcc, 89 bytes, cracked by Dennis
This is particularly evil due to tcc's dynamic resolution. Lots of functions are predeclared and trying to overwrite them simply doesn't work.
источник
puts
and I thought that outputs.)mprotect
is being a butt.Bash, 62 bytes, (cracked by ArchDelacy)
No alphanumerics or forward slashes. You should have fun with this one.
Try it online!
источник
brainfuck, 7 bytes cracked
Try it online!
Good luck. (doesn't work with every BF interpreter
источник
JavaScript (ES6), 102 bytes (Cracked)
The previous version has a massive cheese. Let's try this again...
Try it online!
Author solution:
Usage:
источник
Cubically, 159 bytes (Cracked)
This will be pretty easy to those who are comfortable with Cubically. Try it online!
источник
6502 machine code (C64),
5153 bytes (Cracked)Online demo
Usage:
SYS49152,[x],[n]
, wherex
is a 16bit unsigned integer andn
is an 8bit unsigned integer.Вызванная с неправильными ценностями, аварией является весьма вероятно ,.
Для взлома вы можете запустить его в локальной установке тисков , так что вот загрузчик BASIC для вставки в эмулятор (
RUN
для размещения программы$C000
):Обновление: добавлено два байта для адреса загрузки, чтобы сделать этот исполняемый
PRG
файл C64 в ответ на обсуждение метаисточник
b7eb
callsaefd
, but only after callingad8a
(parse number as float (!)(wtf)(MS)) andb7f7
(convert that float to 16bit unsigned int) -- so I have to first callaefd
myself for consuming the first comma.Python 2, 63 bytes, cracked
Just to get the ball rolling...
Try it online!
источник
Pyth, 18 bytes (Cracked)
This is extremely easy, and anyone that knows Pyth would crack it in the blink of an eye, but still... Note that you must put the String between quotes.
Try it online!
источник
JavaScript (Browser only), 95 bytes (Cracked)
Not too hard. Has multiple solutions.
источник
Jelly, 11 bytes (cracked)
Try it online!
Intended input:
источник
05AB1E, 20 bytes (Cracked)
Shouldn't be too hard though:
Uses the 05AB1E encoding. Try it online!
источник
Ly, 12 bytes (Cracked)
Try it online!
I don't expect this to last very long, but oh well.It didn't last very long.источник
Python3, 192 bytes Cracked I guess
The text it reads is the first program argument:
python3 hw.py '[1,2,3]'
Don't be lame and try to put a
print("Hello World!")
statement as the argument... it prints an error afterwards anyways (at least on the command line), so I don't think that should count. (Edit: somebody did exactly that)источник
Jelly,
2021 bytes (Cracked)+1 byte - "...and a trailing newline"
Try it online!
There are, in fact, infinite solutions.
источник
⁸
which is for some reason missing from the TIO link, so I hope I didn't confuse myself.Lua 5.1, 44 bytes (Cracked)
Note that Lua 5.1 is a different language than Lua 5.2 or Lua 5.3. "Try it online" doesn't have Lua 5.1. You can check your Lua version by running
print(_VERSION)
. (There should be a solution in any implementation that uses PUC-Rio's Lua 5.1 core.)As a test harness, you can use something like this:
Test harness on repl.it
источник
C (GCC on TIO), 84 bytes golfed (Cracked)
Here's an ungolfed version that works too:
источник
JavaScript (ES6), 92 bytes (Cracked)
This simple string copy function seems to be really resisting you to copy any strings resembling
Hello, World!
...Try it online!
источник
Röda, 71 bytes (Cracked)
Try it online!
Usage:
push(/* input */) | f()
(where f is a variable that holds the function above).источник
JavaScript (ES6),
135119 bytes, (Cracked)Try it online!
источник
Ruby, 88 bytes, Cracked by w0lf
Try it online!
источник
JavaScript (ES6) 107 Bytes [Thanks Евгений Новиков] (Cracked)
Call on the
i
function using a string.The
console.log...
is for testing purposes.Try It Online!
источник
var
, (2)()
from one arrow-function argument, (3) replacereturn
toeval("")
(4) delete;
at the end. 110 bytes solution: pastebin.com/qwdm7fT7 Good luck