«Привет, мир!» (Нить Cops)

16

Это нить полицейских. Нить грабителей здесь .

Ваша задача - написать программу или функцию, которая с определенным вводом печатает точную строку 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>

MD XF
источник
Очень похоже, не дурак, хотя.
Сообщение Рок Гарф Хантер
13
Как я уже сказал в песочнице, я чувствую, что это является дубликатом вопроса о приостановке, поскольку вместо этого можно было бы разместить здесь любой ответ, но с кодом для и бесконечным циклом, замененным кодом для печати hello world. Я не буду голосовать пока, потому что я забью, но я вполне уверен, что это обман.
FryAmTheEggman
5
Очевидно, sha3попадает в эту категорию, но в противном случае, где вы проводите черту? Я имею в виду, что mod 1e3это также хеш-функция, и я бы даже пошел дальше и утверждал, что многие из представленных документов будут хеш-функциями, так как эта задача в основном требует такого.
flawr
1
Судя по ответам, которые я видел за прошедший день, ничего не убедило меня в том, что это не дубликат. Сейчас я собираюсь закрыть вызов полиции, и если сообщество не согласится, оно может быть открыто повторно, и если сообщество согласится, оно также может закрыть ветку грабителя.
FryAmTheEggman
1
@Dopapp это уже обсуждалось здесь (некоторые комментарии удалены) и в чате. Ответы не могут быть скопированы или перенесены из этого вызова на этот вызов, поэтому они не являются дубликатами.
MD XF

Ответы:

3

Python 3, 191 186 байт (БЕЗОПАСНО!)

То же, что и мой предыдущий ответ, но без утверждения noob eval, так что кто-то действительно должен решить проблему, которую я создал.

import sys
from numpy import *
e=enumerate
c='Hello, World!'
print(''.join([c[int(sum([c*cos(n*i)for i,c in e(fromiter(sys.argv[1:],float))])+.01)]for n in[2*i+ord(n)for i,n in e(c)]]))

Теперь выполните его с правильными параметрами, такими как python3 hw.py 1 2 3


Редактировать : в предыдущей версии отсутствовала запятая в «Hello, World!», А также я понял, что в ней есть ненужная нумерация, которая теперь исчезла.


Редактировать 2 : просто для забавы, вот почти идентичная версия Pyth (47 байт) того же кода:

KEJ"Hello, World!"jkm@J.Rs.e*b.t*dk1K0.e+*2kCbJ

Входные данные взяты из stdinи представлены в форме списка аргументов, таких как[1,2,3]

Я не вижу смысла публиковать отдельный ответ, потому что если вы взломаете версию Pthyon3, то вы также взломаете версию Pyth, даже не зная Pyth.


Ответ:

python3 hw.py 10.72800138 13.23008796 19.30176276 16.13233012 18.10716041 0.98306644 8.18257475 19.20292132 10.99316856 -2.15745591 6.01351144 5.45443094 10.41260889

Объяснение кода:

''.join()создает строку приветствия из массива символов из строки "Hello, World!". Загадка решается, когда эти признаки [0,1,2,3,4,5,6,7,8,9,10,11,12]. Каждый индекс рассчитывается на основе входных данных и констант, указанных в командной строке. Входы являются жёстко серии: [2*i+ord(c) for i,c in enumerate('Hello, World!')]. Funtion, связывающее вход, константы, и выходной сигнал (indicies) заключается в следующем: sum([c*cos(x*i) for i,c in enumerate(CONSTANTS)]). Это классическая проблема моделирования, когда вы пытаетесь подогнать данные к своей модели.

Придя к решению, в python:

from scipy import optimize
x = [2*i+ord(c) for i,c in eumerate('Hello, World!')]
y = [0,1,2,3,4,5,6,7,8,9,10,11,12].
# make your function: 13 terms means we can achieve 13 exact outputs
def f(x,a,b,c,d,e,f,g,h,i,j,k,l,m):
    return sum([c*cos(x*i) for i,c in enumerate([a,b,c,d,e,f,g,h,i,j,k,l,m])])
# curve fit
ans,_ = optimize.curve_fit(f,x,y)
# check answer
[round(f(a,*ans),0) for a in x] # should be 0-12

rexroni
источник
2
На тот случай, если вы не знали, literal_eval()в astмодуле можно безопасно вычислять выражения, чтобы print(проблема внедрения кода не работала. Это, наверное, не имеет значения, но я просто подумал, что упомяну это.
Esolanging Fruit
2
Вы уверены, что это может напечатать Hello, World!? Еще не взломали, но похоже, что пропущена запятая (только 12 итераций в цикле соединения)
Uriel
О, вы правы, запятая отсутствует. Я исправлю это сейчас.
Рексрони
@ Challenger5 спасибо, я этого не знал.
Рексрони
12

TeX - 38 байт, взломанный (ish)

Это стоит того, потому что я не могу представить, чтобы кто-нибудь на сайте о написании коротких фрагментов кода знал бы TeX:

\read16to\x\message{Hello, World!}\bye

Чтобы запустить его, вы должны получить некоторую форму TeX, которая позволяет интерактивный режим. Сохраните это в файл и запустите на нем TeX (или pdfTeX, XeTeX и т. Д.).

Редактировать: в настоящее время я рассматриваю это полу-трещины. Предполагаемое решение использует входные данные из stdin, но Texnical входные данные от того, как вызывается программа, действительны. Я буду добавлять более коварные ответы TeX, если кто-то получит предполагаемый метод.

Вот предполагаемое решение:

^ C Ia - Первый ключ - control-c, который вызывает ошибку. Затем вы нажимаете I (заглавная i) для ввода команды. Затем вы вводите (или что-нибудь еще, чтобы быть набранным). Обычно за сообщением, которое было напечатано на stdout, следует пробел, а затем ')'. Когда вы что-то набираете, информация о шрифте выводится после сообщения. Это означает, что добавляется символ новой строки, а ")" перемещается позже.

Это может быть закулисным, но все же должно быть в правилах игры.

Золотой человек
источник
Добро пожаловать в PPCG. Хороший первый ответ
Евгений Новиков
Разве не достаточно использовать tex \ Hello, world!\bye(23 байта)?
Вернер
@ Вернер, который позволил бы вводить пользователя?
Золотой человек
Это на самом деле должно быть взломано? : o
Феликс Пальмен
3
texnicallyо Боже.
MD XF
7

> <> , 538 байт, взломано rexroni

v
\">/v>v\v</>"
/!?lp%*2di%*2di
a
v   "        "       "
   "l"      "o"  /  "e"
v   "        "     " "
      "   /       "l"/
v    "!"           "
 //   " " "      \
v     \"d"o"   " "    "
      " " "   "o"r"  "!"
v"   "H"       " "    "
"l"   ""
""    "r" "         "
    \  " "l"       "d"  "
v   "     "      "  "  "H"
   "e"         /","     "
v " " "     "  " "
 "e" "W"  /"d""l"
v " " "     "  "      "
   "H"               "!"
v   "                 "
                        v
>>"Hello world?"       >o<
                        ^

Попробуйте онлайн , или вы можете использовать рыбную площадку .

Первые три строки читаются в строке из STDIN и используют его коды модов 26 в качестве координат, чтобы поместить символы " >/v>v\v</>" в лабиринт ниже. Предполагаемое решение - это строка из 20 символов, состоящая только из букв A – Z (хотя, конечно, вы можете использовать все, что захотите).

Решение:

Предполагаемый вклад OCEANICWHITETIPSHARK(это рыба!). Путь через лабиринт выглядит так:

v
\">/v>v\v</>"
/!?lp%*2di%*2di
a                |  |
v   "        "   |  |"
| v"l"______"o"__/  "e"
v | "        "     " "
| |   "   /       "l"/
v |  "!"           "|
|//   " " "    v_\  |
v|    \"d"o"   " "  | "
||    " " "   "o"r" |"!"
v"   "H"       " "  | "
"l"___""_______ _/__/_____
""    "r" "    | |  "
|>__\  " "l"   | | "d"  "
v   "     "    | "  "  "H"
|  "e"v________/"," |   "
v " " "     "  " "  |
|"e"|"W"  /"d""l"|  |
v " " "     "  " |  | "
<  "H">__________ __\"!"__
v   "            |  | "
    >____________ __ ___v
>>"Hello world?" |  |  >o<
                 |  |   ^

Не дерево
источник
Трещины! Взял меня навсегда.
Рексрони
3
Эй, я подозревал, что ответом может быть слово, но я не пытался его расшифровать. Я стою еще более впечатленным.
Рексрони
6

Октава, 59 байт, трещины

Это работает в октаве 4.2.0. Я не могу гарантировать совместимость со всеми версиями.

i=input('');printf('%c',i*~all(isequal(i,'Hello, World!')))

Примечание: это не печатает пробелы или переводы строки. Вот как это выглядит:

введите описание изображения здесь

Он в основном говорит: «Напечатайте входную строку, если на входе нет« Hello, World! », В этом случае он не должен ничего печатать (или нулевой символ).

Стьюи Гриффин
источник
Я не уверен, что %cозначает string или char ... может быть, вы что-то скрываете? Кроме того, это *~делает меня немного подозрительным ...
Эрик Outgolfer
Я не уверен, но треснул ?
ბიმო
@BruceForte печатает нулевой байт в конце вывода, я не уверен, что это правильно ... ссылка
MD XF
1
Я почти уверен, что предполагаемое решение - такая вещь.
Джонатан Аллан
1
@BruceForte, нет. не не было \n. Я думал, что текст вопроса сказал « необязательный трейлинг-перевод строки ».
Стьюи Гриффин
5

MATL , 6 байтов. Трещины

tsZp?x

Попробуйте онлайн!

Луис Мендо
источник
Трещины , но если это не то решение, которое кажется обманом.
Деннис
@Dennis Предполагаемое решение было ['Hello,' 1 'World!']. Зачем обманывать? :-( Документ / справка для Dговорит, что большинство вводимых символов ниже 32 заменены пробелом
Луис Мендо
Я имел в виду обман с моей стороны, превращение новой строки LF в новую строку CR + LF.
Деннис
@ Денис А, понятно. Ну, я думаю, что это тоже совершенно верно
Луис Мендо,
5

Взорваться , 23 байта, трещины

@_?&4_-j>5&f^~c>&6\|4>7

Еще впереди, это только начало> :)

Попробуйте онлайн!

Explorer Explanation

В этой программе четыре исследователя. Я не совсем уверен, что wait ( >) работает правильно.

@_?

Прочитайте ввод данных пользователем ( ?), запишите и разверните ленту ( @) вниз ( _).

&4_-j>5

Для 4 тиков ( 4) измените ленту ( &) вниз ( _), прыгнув на 5 ( 5), вычитая ( -) 19 ( j).

&f^~c>

Для 16 тиков ( f) измените ленту ( &) вверх ( ^) в волне ( ~), чередуя без эффекта, +13, без эффекта и -13 ( c).

&6\|4>7

Для 6 тиков ( 6) измените ленту ( &) в обоих направлениях ( |), уменьшая ( \) на 4 ( 4) каждый раз и прыгая на 7 ( 7). Уменьшение означает, что оно вычитает 4 в первый раз, 8 во второй раз и т. Д.

Stephen
источник
3
Cracked but feel free to give an explanation of the goings on :)
Jonathan Allan
@JonathanAllan explanation added, sorry I took so long
Stephen
5

JavaScript (ES6), 173 169 163 150 151 148 143 bytes (Cracked)

Let's have something totally different... and totally evil.

const e=eval,p=''.split,c=''.slice,v=[].every,f=s=>(t=c.call(s),typeof s=='string'&&t.length<81&&v.call(p.call(t,`\n`),l=>l.length<3)&&e(t)(t))

Usage: f(something) // returns 'Hello, World!'

Try it online!

Voile
источник
Let us continue this discussion in chat.
Евгений Новиков
Cracked
DanTheMan
Nice! That's a real crack.
Voile
This was really tough to crack. Good job!
DanTheMan
It's directly taken from one of the puzzles I've created on elsewhere :) (I'll let people figure out where I posted the original puzzle.)
Voile
4

C# (.NET Core), 130 152 bytes, CRACKED

+22 bytes, I forgot about trailing newline... Program works the same as before, the newline is added to any output.

a=>a.Distinct().Select((x,y)=>a.Reverse().Skip(y).First()*x%255).Take(a.First()-33).Concat(new int[]{10}).Select(x=>(char)x).ToArray()

Try it online!

Byte count also includes

using System.Linq;

For a start I went for something not too crazy. It can has multiple answers.

The "official" crack:

. !$0%>5&8'#?)S*TuE[MRX`+9

Grzegorz Puławski
источник
2
Cracked
Kamil Drakari
4

tcc, 89 bytes, cracked by Dennis

#!/usr/bin/tcc -run
#include <stdio.h>

int main()
{
    puts("\n");
}
#include "/dev/stdin"

This is particularly evil due to tcc's dynamic resolution. Lots of functions are predeclared and trying to overwrite them simply doesn't work.

Joshua
источник
Could you create a working TIO link for people to play with? (this is no doubt incomplete - maybe it needs compiler flags or something, I have no idea) TBH I don't even know how this is meant to take input...?
Jonathan Allan
Tio's tcc is not going to work. It doesn't get that this must be used as tcc -run rather than a separate compile and link phase.
Joshua
Maybe it's runnable via a shell through there then, bash is available (I know very little regarding either tcc or bash though). Otherwise I think you should give some detailed instructions to get people going (unless my personal lack of knowledge is the issue here - as I said I don't even know how your code gets any input, all I see is a puts and I thought that outputs.)
Jonathan Allan
Almost have a crack but I'm on mobile and mprotect is being a butt.
MD XF
cracked
Dennis
4

brainfuck, 7 bytes cracked

,+[.,+]

Try it online!

Good luck. (doesn't work with every BF interpreter

Christopher
источник
Does your input work with any BF interpreter, including ones with different tape lengths? Does your input work locally, and not just on TIO?
Stephen
@StepHen any length of type afaik
Christopher
cracked
rexroni
1
Does your intended solution work on TIO?
totallyhuman
@totallyhuman thanks, edited the comment so it looks pro. I don't know how to put non-printable input on TIO. I passed input on stdin from a C program with a single printf statement.
rexroni
3

JavaScript (ES6), 102 bytes (Cracked)

The previous version has a massive cheese. Let's try this again...

f=s=>{let r='',i=0;while(i<13)r+=!s[i][0]||s[i]=='Hello, World!'[i]||s[i++];return r};Object.freeze(f)

Try it online!

Author solution:

new Proxy({v:Array(13).fill(0)},{get:(o,p)=>['a','','Hello, World!'[p]][o.v[p]++]})

Usage:

var p=new Proxy({v:Array(13).fill(0)},{get:(o,p)=>['a','','Hello, World!'[p]][o.v[p]++]}) console.log(f(p))

Voile
источник
Cracked
Birjolaxew
3

Cubically, 159 bytes (Cracked)

+53$!7@6:2/1+551$?7@6:5+52$!7@66:3/1+552$?7@6:5+3/1+4$!7@6:5/1+3$?7@6:5+1/1+54$!7@6:3/1+552$?7@6:5+1/1+552$?7@6:5+52$!7@6:1/1+551$?7@6:5+1/1+3$!7@6:1/1+1$(@6)7

This will be pretty easy to those who are comfortable with Cubically. Try it online!

MD XF
источник
1
Is anybody comfortable with Cubically? :P
totallyhuman
@totallyhuman The language is actually pretty simple once you get used to it, and it's fun to use!
TehPers
@totallyhuman It looks like there aren't any turning instructions, so this seems like mostly just math with multiples of 9. Very, very convoluted math.
Robert Fraser
Cracked? I think I got the intended input, but it doesn't quite work, but I'm pretty sure it fails due to an interpreter bug. See my explanation in crack post. If I am right, then you were right that it was actually darn easy : )
rexroni
3

6502 machine code (C64), 51 53 bytes (Cracked)

00 C0                     .WORD $C000     ; load address
20 FD AE                  JSR $AEFD
20 EB B7                  JSR $B7EB
8A                        TXA
0A                        ASL A
45 14                     EOR $14
8D 21 C0                  STA $C021
45 15                     EOR $15
85 15                     STA $15
49 E5                     EOR #$E5
85 14                     STA $14
8E 18 D0                  STX $D018
A0 00                     LDY #$00
B1 14                     LDA ($14),Y
20 D2 FF                  JSR $FFD2
C8                        INY
C0 0E                     CPY #$0E
D0 F6                     BNE *-8
60                        RTS
C8 45 4C 4C 4F 2C 20 D7   .BYTE "Hello, W"
4F 52 4C 44 21 0D         .BYTE "orld!", $D

Online demo

Usage: SYS49152,[x],[n], where x is a 16bit unsigned integer and n is an 8bit unsigned integer.

Input is 52768 and 23 (SYS49152,52768,23)

The second parameter is directly written to D018, a control register of the VIC-II graphics chip. Using a suitable reference, you can deduce what to write there for setting lowercase mode without changing other modes and the address of the screen memory: $17, or decimal 23. With that, you can follow the arithmetics in the code, so the first parameter ends up with the correct string address in $14/$15 (little-endian). A more in-depth explanation can be found in the crack.

Screenshot

Вызванная с неправильными ценностями, аварией является весьма вероятно ,.

Для взлома вы можете запустить его в локальной установке тисков , так что вот загрузчик BASIC для вставки в эмулятор ( RUNдля размещения программы $C000):

0fOa=49152to49202:rEb:pOa,b:nE
1dA32,253,174,32,235,183,138,10,69,20,141,33,192,69,21,133,21,73,229,133,20,142
2dA24,208,160,0,177,20,32,210,255,200,192,255,208,246,96,200,69,76,76,79,44,32
3dA215,79,82,76,68,33,13

Обновление: добавлено два байта для адреса загрузки, чтобы сделать этот исполняемый PRGфайл C64 в ответ на обсуждение мета

Феликс Палмен
источник
Are you sure you need to call the comma checking function at the beginning? I'm under the impression that b7eb does that check, too.
A Gold Man
b7eb calls aefd, but only after calling ad8a (parse number as float (!)(wtf)(MS)) and b7f7 (convert that float to 16bit unsigned int) -- so I have to first call aefd myself for consuming the first comma.
Felix Palmen
Cracked! Sweet sweet vengeance!
A Gold Man
@AGoldMan finally edited my post. Again, well done! Maybe I can come up with another C64 code that's a bit harder to crack (without being unfair), not sure yet :)
Felix Palmen
2

Python 2, 63 bytes, cracked

Just to get the ball rolling...

#coding:rot13
cevag vachg()==h'Hello, World!'naq'Hello, World!'

Try it online!

totallyhuman
источник
1
Is it generally accepted for the OP to crack submissions?
MD XF
1
cracked
Post Rock Garf Hunter
3
That's interesting... I hadn't realized any "normal" language supports coding in ROT13 o_o
ETHproductions
13
@Arnauld And you're claiming PHP is a normal language?
NoOneIsHere
1
@NoOneIsHere Er... no. My bad. :-P
Arnauld
2

Pyth, 18 bytes (Cracked)

IqGQ"Hello, World!

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!

Mr. Xcoder
источник
If anyone cracks it, please edit in yourselves.
Mr. Xcoder
Cracked?
totallyhuman
1
@totallyhuman Yep
Mr. Xcoder
2

Jelly, 11 bytes (cracked)

sLƽ$Xṙ5O½Ọ

Try it online!

Intended input:

〡㋄ⶐ✐сᑀ⟙ⶐⶐ〡ސЀᶑ〡㋄ⶐ✐сᑀ⟙ⶐⶐ〡ސЀᶑ〡㋄ⶐ✐сᑀ⟙ⶐⶐ〡ސЀᶑ〡㋄ⶐ✐сᑀ⟙ⶐⶐ〡ސЀᶑ〡㋄ⶐ✐сᑀ⟙ⶐⶐ〡ސЀᶑ〡㋄ⶐ✐сᑀ⟙ⶐⶐ〡ސЀᶑ〡㋄ⶐ✐сᑀ⟙ⶐⶐ〡ސЀᶑ〡㋄ⶐ✐сᑀ⟙ⶐⶐ〡ސЀᶑ〡㋄ⶐ✐сᑀ⟙ⶐⶐ〡ސЀᶑ〡㋄ⶐ✐сᑀ⟙ⶐⶐ〡ސЀᶑ〡㋄ⶐ✐сᑀ⟙ⶐⶐ〡ސЀᶑ〡㋄ⶐ✐сᑀ⟙ⶐⶐ〡ސЀᶑ〡㋄ⶐ✐сᑀ⟙ⶐⶐ〡ސЀᶑ

Erik the Outgolfer
источник
Cracked
HyperNeutrino
@HyperNeutrino Heh that was sneaky, given it lived for over half an hour. ;)
Erik the Outgolfer
Heh that's cuz I only saw it 10 minutes before seeing it ;P
HyperNeutrino
2

Python3, 192 bytes Cracked I guess

from sys import *
from numpy import *
e=enumerate
c='Hello World!'
w=eval(argv[1])
x=[ord(n)+2*i for i,n in e(c)]
print(''.join([c[int(sum([c*cos(n*i)for i,c in e(w)])+.01)]for i,n in e(x)]))

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)

rexroni
источник
4
Cracked. Lame crack, but unrestricted eval must be punished =)
Sisyphus
2

Jelly,  20  21 bytes (Cracked)

+1 byte - "...and a trailing newline"

œ?“¥ĊɲṢŻ;^»œ?@€⁸ḊFmṪ⁷

Try it online!

There are, in fact, infinite solutions.

Jonathan Allan
источник
I think I cracked this. My crack works with the which is for some reason missing from the TIO link, so I hope I didn't confuse myself.
tehtmi
Sorry about the TIO mistake!
Jonathan Allan
2

Lua 5.1, 44 bytes (Cracked)

s=...loadstring(#s>4+#s:gsub("%l","")or s)()

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:

function test(...)s=...loadstring(#s>4+#s:gsub("%l","")or s)()end

test[[
This is my input!
It can have multiple lines!
]]

Test harness on repl.it

tehtmi
источник
2

C (GCC on TIO), 84 bytes golfed (Cracked)

#include<stdio.h>
main(x){scanf("%d",&x);printf("%2$s","Hello, World!\n",(void*)x);}

Here's an ungolfed version that works too:

#include <stdio.h>
int main(void)
{
    int x;
    scanf("%d",&x);

    printf("%2$s","Hello, World!\n",(void*)x);
}
MD XF
источник
2

JavaScript (ES6), 92 bytes (Cracked)

This simple string copy function seems to be really resisting you to copy any strings resembling Hello, World!...

f=s=>{let r='',i=0;while(i<13)r+=s[i]=='Hello, World!'[i]||s[i++];return r};Object.freeze(f)

Try it online!

Voile
источник
2

Röda, 71 bytes (Cracked)

{[[head(_)]..[unpull(1)if[_1>1]]]|[_()|chars|unorderedCount|[_*(_-1)]]}

Try it online!

Usage: push(/* input */) | f() (where f is a variable that holds the function above).

fergusq
источник
Cracked
Kritixi Lithos
2

JavaScript (ES6), 135 119 bytes, (Cracked)

const t='Hello, World!',g=q=>eval(`(function(p,q${q}){return eval(p),eval(q)})`),f=s=>g('')(s,0)==t&&g('=1')(s,0)!=t&&t

Try it online!

Voile
источник
Cracked
Birjolaxew
2

JavaScript (ES6) 107 Bytes [Thanks Евгений Новиков] (Cracked)

i=r=>{for(e="",n=0;r.length>n;o=r.charCodeAt(++n),e+=String.fromCharCode(((3^o^19)<<1^15^13)<<1));return e}

Call on the i function using a string.

The console.log... is for testing purposes.

Try It Online!

Ephellon Dantzler
источник
Welcome to PPCG! You can save 8 bytes: (1) remove var, (2) () from one arrow-function argument, (3) replace return to eval("") (4) delete ; at the end. 110 bytes solution: pastebin.com/qwdm7fT7 Good luck
Евгений Новиков
Finally got 50 rep, so: Cracked
Voile