«Bonjour, le monde!» (Fil des flics)

16

Ceci est le fil des flics. Le fil des voleurs est ici .

Votre défi est d'écrire un programme ou une fonction qui, avec une certaine entrée, imprime la chaîne exacte Hello, World!et une nouvelle ligne. La majuscule, l'espacement et la ponctuation doivent être exacts.

L'entrée peut être prise via une entrée standard, un fichier ou des arguments de ligne de commande / fonction. La sortie peut être donnée via une valeur de retour, une écriture dans un fichier ou une sortie standard.

Votre programme doit imprimer Hello, World!pour au moins une entrée. Lorsque votre programme reçoit la mauvaise entrée (c'est-à-dire l'entrée qui ne le fait pas imprimer Hello, World!), il peut faire tout ce que vous voulez - planter, imprimer des bêtises aléatoires, appeler Chuck Norris, etc.

Vous ne pouvez pas utiliser un algorithme de hachage ou toute méthode similaire pour masquer l'entrée requise.

Les soumissions sont préférables pour être exécutables et fissurables sur TIO . Les soumissions non exécutables ou fissurables sur TIO sont autorisées, mais veuillez inclure des instructions pour les télécharger / les exécuter.

Après une semaine, ce défi sera fermé aux futures soumissions de flics. Le gagnant est le code le plus court qui n'est pas fissuré après une semaine de publication ("c'est" le code, pas ce défi). Le gagnant sera accepté après deux semaines.

Après qu'une semaine s'est écoulée depuis la publication, veuillez marquer votre réponse comme sûre et montrer l'entrée (en a > ! spoiler quote). Si un voleur déchiffre votre soumission (avant la fin de la semaine), veuillez la marquer comme fissurée et montrer l'entrée d'arrêt (dans un> ! spoiler quote ).

Vous recherchez des soumissions non fissurées?

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
la source
Très similaire pas dupe cependant.
Post Rock Garf Hunter
13
Comme je l'ai dit dans le bac à sable, je pense qu'il s'agit d'un doublon de la question d'arrêt, car toute réponse pourrait y être affichée à la place, mais avec du code pour et une boucle infinie remplacée par du code pour imprimer bonjour le monde. Je ne voterai pas encore parce que je martellerais, mais je suis assez convaincu que c'est dupe.
FryAmTheEggman
5
Évidemment sha3tombe dans cette catégorie, mais sinon où tracez-vous la ligne? Je veux dire que mod 1e3c'est aussi une fonction de hachage, et j'irais même jusqu'à dire que bon nombre des soumissions vont être des fonctions de hachage, car ce défi le demande essentiellement.
flawr
1
Sur la base des réponses que j'ai vues au cours de la dernière journée, rien ne semble me convaincre que ce n'est pas un doublon. Je vais clore le défi des flics pour l'instant, et si la communauté n'est pas d'accord, il peut être rouvert, et si la communauté accepte, elle peut également fermer le fil du voleur.
FryAmTheEggman
1
@Dopapp, cela a déjà été discuté, ici (certains commentaires supprimés) et dans le chat. Les réponses ne peuvent pas être copiées-collées, ni transférées très facilement, de ce défi à celui-ci, elles ne sont donc pas des doublons.
MD XF

Réponses:

3

Python 3, 191 186 octets (SAFE!)

Identique à ma réponse précédente, mais sans la déclaration noob eval, de sorte que quelqu'un doit réellement résoudre le problème que j'ai créé.

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)]]))

exécutez-le maintenant avec les paramètres corrects, tels que python3 hw.py 1 2 3


Edit : il manquait une virgule à la version précédente dans "Hello, World!", Et j'ai également réalisé qu'il y avait un ennemi inutile, qui a maintenant disparu.


Edit 2 : Juste pour le plaisir, voici une version Pyth presque identique (47 octets) du même code:

KEJ"Hello, World!"[email protected]*b.t*dk1K0.e+*2kCbJ

L'entrée est tirée stdinet se présente sous la forme d'une liste d'arguments, tels que[1,2,3]

Je ne vois aucun intérêt à publier une réponse distincte, car si vous craquez la version Pthyon3, vous craquez également la version Pyth, même sans connaître Pyth.


Répondre:

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

Explication du code:

''.join()crée la chaîne hello world à partir d'un tableau de caractères à partir de la chaîne "Hello, World!". Le casse-tête est résolu lorsque ces indices le sont [0,1,2,3,4,5,6,7,8,9,10,11,12]. Chaque index est calculé à partir d'une entrée et des constantes données sur la ligne de commande. Les entrées sont une série codée en dur: [2*i+ord(c) for i,c in enumerate('Hello, World!')]. Le funtion qui concerne l'entrée, les constantes et la sortie (indicies) est la suivante: sum([c*cos(x*i) for i,c in enumerate(CONSTANTS)]). Il s'agit d'un problème de modélisation classique, dans lequel vous essayez d'ajuster des données à votre modèle.

Arriver à la solution, en 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
la source
2
Juste au cas où vous ne le sauriez pas, literal_eval()le astmodule peut être utilisé pour évaluer les expressions en toute sécurité, afin que le print(problème d'injection de code ne fonctionne pas. Ce n'est probablement pas pertinent ici, mais je pensais juste le mentionner.
Esolanging Fruit
2
êtes-vous sûr que cela peut imprimer Hello, World!? N'a pas encore craqué, mais il semble qu'il manque une virgule (seulement 12 itérations dans la boucle de jointure)
Uriel
Oh, tu as raison, il manque une virgule. Je vais le corriger maintenant.
rexroni
@ Challenger5 merci, je ne le savais pas.
rexroni
12

TeX - 38 octets fissurés (ish)

Cela vaut le coup, car je ne peux pas imaginer que quiconque sur un site sur l'écriture de courts morceaux de code connaisse TeX:

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

Pour l'exécuter, vous devez vous procurer une forme de TeX qui autorise le mode interactif. Enregistrez-le dans un fichier et exécutez TeX (ou pdfTeX, XeTeX, etc.) dessus.

Edit: je considère actuellement ce semi-cracké. La solution envisagée utilise l'entrée de stdin, mais l'entrée TeXnically de la façon dont le programme est appelé est valide. J'ajouterai des réponses TeX plus sournoises si quelqu'un obtient la méthode prévue.

Voici la solution envisagée:

^ C Ia - La première clé est control-c, ce qui provoque une erreur. Ensuite, vous appuyez sur I (majuscule i) pour saisir une commande. Ensuite, vous tapez un (ou toute autre chose à composer). Normalement, le message qui a été imprimé sur stdout serait suivi d'un espace puis d'un «)». Lorsque vous tapez quelque chose, les informations de police sont sorties après le message. Cela signifie qu'une nouvelle ligne est ajoutée et que le «)» est déplacé plus tard.

Cela peut être sournois, mais devrait toujours être dans les règles du jeu.

Un homme d'or
la source
Bienvenue chez PPCG. Bonne première réponse
Евгений Новиков
Ne suffirait-il pas d'utiliser tex \ Hello, world!\bye(23 octets)?
Werner
@Werner qui permettrait la saisie par l'utilisateur?
A Gold Man
Est-ce réellement destiné à être craqué? : o
Felix Palmen
3
texnicallyOh mince.
MD XF
7

> <> , 538 octets, fissuré par 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<
                        ^

Essayez-le en ligne , ou vous voudrez peut-être utiliser la plaine de jeux pour poissons .

Les trois premières lignes sont lues dans une chaîne de STDIN et utilisent ses mods de codes 26 comme coordonnées pour mettre les caractères " >/v>v\v</>" dans le labyrinthe ci-dessous. La solution envisagée est une chaîne de 20 caractères composée uniquement des lettres A – Z (bien que vous puissiez bien sûr utiliser tout ce que vous voulez).

Solution:

L'entrée prévue est OCEANICWHITETIPSHARK(c'est un poisson!). Le chemin à travers le labyrinthe ressemble à:

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<
                 |  |   ^

Pas un arbre
la source
Fissuré! Ça m'a pris pour toujours.
rexroni
3
Hé, je soupçonnais que la réponse pourrait être un mot, mais je n'ai fait aucune tentative pour la déchiffrer. Je suis encore plus impressionné.
rexroni
6

Octave, 59 octets, fissuré

Cela fonctionne dans Octave 4.2.0. Je ne peux pas garantir la compatibilité avec toutes les versions.

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

Remarque: cela n'imprime aucun espace de fin ni nouvelle ligne. Voici à quoi ça ressemble:

enter image description here

Il dit essentiellement: "Imprimez la chaîne d'entrée, sauf si l'entrée est" Hello, World! ", Auquel cas elle ne doit rien imprimer (ou le caractère nul).

Stewie Griffin
la source
Je ne sais pas si des %cmoyens chaîne ou omble chevalier ... Peut-être vous cache quelque chose? De plus, *~cela me rend un peu méfiant ...
Erik the Outgolfer
Je ne suis pas sûr, mais craqué ?
ბიმო
@BruceForte imprime un octet nul à la fin de la sortie, je ne suis pas sûr que ce soit valide ... lien
MD XF
1
Je suis sûr que la solution envisagée est ce genre de chose.
Jonathan Allan
1
@BruceForte, non. il n'y en avait pas \n. Je pensais que le texte de la question disait " saut de ligne facultatif ".
Stewie Griffin
5

CJam , 7 octets ( fissuré )

q5/:i:c

Essayez-le en ligne!

Entrée prévue:

65608656376564465644656476558065568656236564765650656446563665569

Erik le Outgolfer
la source
Cracked
Jonathan Allan
@JonathanAllan Darn! Ce n'était pas l'apport prévu cependant.
Erik the Outgolfer
5

MATL , 6 octets. Fissuré

tsZp?x

Essayez-le en ligne!

Luis Mendo
la source
Craqué , mais si ce n'est pas la solution prévue, cela ressemble un peu à de la triche.
Dennis
@Dennis The intended solution was ['Hello,' 1 'World!']. Why cheating? :-( The doc/help for D says Most input characters below 32 are replaced by space
Luis Mendo
I meant cheating on my part, turning an LF newline into a CR+LF newline.
Dennis
@Dennis Ah, I see. Well, I think it's perfectly valid too
Luis Mendo
5

Explode, 23 bytes, Cracked

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

More coming, this is just the beginning >:)

Try it online!

Explorer Explanation

There are four explorers in this program. I'm not entirely sure that wait (>) is working correctly.

@_?

Read user input (?), write and extend the tape (@) down (_).

&4_-j>5

For 4 ticks (4), modify the tape (&) downwards (_), jumping by 5 (5), by subtracting (-) 19 (j).

&f^~c>

For 16 ticks (f), modify the tape (&) upwards (^) in a wave (~), alternating no affect, +13, no affect, and -13 (c).

&6\|4>7

For 6 ticks (6), modify the tape (&) in both directions (|), decreasing (\) by 4 (4) each time, and jumping by 7 (7). Decreasing means that it subtracts 4 the first time, 8 the second time, etc.

Stephen
la source
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
la source
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
la source
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
la source
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
la source
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
la source
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
la source
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

Invoked with wrong values, a crash is very likely.

For cracking, you might want to run it in a local installation of vice, so here's a BASIC loader to paste into the emulator (RUN it to place the program at $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

Update: Added two bytes for the load address to make this an executable C64 PRG file in response to the discussion on meta

Felix Palmen
la source
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
la source
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
la source
If anyone cracks it, please edit in yourselves.
Mr. Xcoder
Cracked?
totallyhuman
1
@totallyhuman Yep
Mr. Xcoder
2

JavaScript (Browser only), 95 bytes (Cracked)

try{a=JSON.parse(prompt());try{a=='[object Object]'}catch(a){alert('Hello, World!')}}catch(a){}

Not too hard. Has multiple solutions.


la source
@Maltysen. That was fast! :)
2

Jelly, 11 bytes (cracked)

sLƽ$Xṙ5O½Ọ

Try it online!

Intended input:

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

Erik the Outgolfer
la source
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

05AB1E, 20 bytes (Cracked)

Shouldn't be too hard though:

•GG∍Mñ¡÷dÖéZ•2ô¹βƵ6B

Uses the 05AB1E encoding. Try it online!

Adnan
la source
1
cracked
Jonathan Allan
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
la source
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
la source
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
la source
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
la source
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
la source
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
la source
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
la source
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
la source
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