Este es el hilo conductor de la policía. El hilo de los ladrones está aquí .
Su desafío es escribir un programa o función que, con cierta entrada, imprima la cadena exacta Hello, World!
y una nueva línea. La capitalización, el espaciado y la puntuación deben ser exactos.
La entrada puede tomarse a través de una entrada estándar, un archivo o argumentos de línea de comando / función. La salida se puede proporcionar a través del valor de retorno, escribiendo en un archivo o salida estándar.
Su programa debe imprimir Hello, World!
al menos una entrada. Cuando su programa recibe una entrada incorrecta (es decir, la entrada que no lo imprime Hello, World!
), puede hacer lo que quiera: bloquearse, imprimir tonterías aleatorias, llamar a Chuck Norris, etc.
No puede utilizar un algoritmo de hash ni ningún método similar para ocultar la entrada requerida.
Se prefiere que las presentaciones sean ejecutables y crackeables en TIO . Se permiten envíos no ejecutables o crackeables en TIO, pero incluya instrucciones para descargarlos / ejecutarlos.
Después de una semana, este desafío se cerrará para futuras presentaciones de policías. El ganador es el código más corto que se descifra después de una semana de publicarlo ("es" el código, no este desafío). El ganador será aceptado después de dos semanas.
Después de que haya pasado una semana desde la publicación, marque su respuesta como segura y muestre la entrada (en a > ! spoiler quote
). Si un ladrón rompe su envío (antes de que termine la semana), márquelo como agrietado y muestre la entrada de detención (en a > ! spoiler quote
).
¿Está buscando presentaciones sin descifrar?
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
cae en esa categoría, pero de lo contrario, ¿dónde trazas la línea? Quiero decirmod 1e3
que también es una función hash, e incluso iría tan lejos y argumentaría que muchas de las presentaciones serán funciones hash, ya que este desafío es básicamente pedirlo.Respuestas:
Python 3,
191186 bytes (¡SEGURO!)Igual que mi respuesta anterior, pero sin la declaración noob eval, de modo que alguien realmente tiene que resolver el problema que creé.
ahora ejecútelo con los parámetros correctos, como
python3 hw.py 1 2 3
Editar : a la versión anterior le faltaba una coma en "¡Hola, Mundo!", Y también me di cuenta de que tenía una enumeración innecesaria, que ahora se ha ido.
Edición 2 : Solo por diversión, aquí hay una versión de Pyth casi idéntica (47 bytes) del mismo código:
La entrada se toma
stdin
y tiene la forma de una lista de argumentos, como[1,2,3]
No veo ningún punto en publicar una respuesta por separado porque si descifras la versión Pthyon3, también descifras la versión Pyth, incluso sin conocer Pyth.
Responder:
Explicación del código:
Al llegar a la solución, en python:
fuente
literal_eval()
en elast
módulo se puede utilizar para evaluar de forma segura las expresiones, de modo que elprint(
problema de inyección de código no funcione. Probablemente no sea relevante aquí, pero solo pensé en mencionarlo.Hello, World!
? Todavía no se ha agrietado, pero parece que le falta una coma (solo 12 iteraciones en el bucle de unión)TeX - 38 bytes agrietados (ish)
Vale la pena intentarlo, porque no puedo imaginar que alguien en un sitio sobre escribir piezas cortas de código conozca TeX:
Para ejecutarlo, debe obtener alguna forma de TeX que permita el modo interactivo. Guarde esto en un archivo y ejecute TeX (o pdfTeX, XeTeX, etc.) en él.
Editar: Actualmente estoy considerando esto semi-agrietado. La solución prevista usa la entrada de stdin, pero la entrada de TeXnically de la forma en que se invoca el programa es válida. Agregaré respuestas TeX más tortuosas si alguien obtiene el método deseado.
Aquí está la solución prevista:
Eso puede ser sencillo, pero aún debe estar dentro de las reglas del juego.
fuente
tex \ Hello, world!\bye
(23 bytes)?texnically
oh Dios mío.> <> , 538 bytes, descifrado por rexroni
Pruébelo en línea , o puede usar el área de juegos para peces .
Las primeras tres líneas se leen en una cadena de STDIN y usan sus códigos de charla 26 como coordenadas para colocar los caracteres "
>/v>v\v</>
" en el laberinto de abajo. La solución prevista es una cadena de 20 caracteres compuesta únicamente por las letras de la A a la Z (aunque, por supuesto, puede usar lo que desee).Solución:
fuente
Octava, 59 bytes, agrietada
Esto funciona en Octave 4.2.0. No puedo garantizar la compatibilidad con todas las versiones.
Nota: Esto no imprime espacios finales ni líneas nuevas. Esto es lo que parece:
Básicamente dice: "Imprime la cadena de entrada, a menos que la entrada sea 'Hello, World!', En cuyo caso no debería imprimir nada (o el carácter nulo).
fuente
%c
significa cadena o char ... ¿tal vez estás ocultando algo? También*~
eso me hace sospechar un poco ...\n
. Pensé que el texto de la pregunta decía " nueva línea final opcional ".CJam , 7 bytes ( agrietado )
Pruébalo en línea!
Entrada prevista:
fuente
MATL , 6 bytes. Agrietado
Pruébalo en línea!
fuente
['Hello,' 1 'World!']
. ¿Por qué hacer trampa? :-( El documento / ayuda paraD
dice La mayoría de los caracteres de entrada por debajo de 32 son reemplazados por espacioExplotar , 23 bytes, agrietado
Más por venir, esto es solo el comienzo> :)
Pruébalo en línea!
Explicación del explorador
Hay cuatro exploradores en este programa. No estoy completamente seguro de que wait (
>
) funcione correctamente.Lea la entrada del usuario (
?
), escriba y extienda la cinta (@
) hacia abajo (_
).Para 4 ticks (
4
), modifique la cinta (&
) hacia abajo (_
), saltando 5 (5
), restando (-
) 19 (j
).Para 16 ticks (
f
), modifique la cinta (&
) hacia arriba (^
) en una onda (~
), alternando sin efecto, +13, sin efecto y -13 (c
).Para 6 ticks (
6
), modifique la cinta (&
) en ambas direcciones (|
), disminuyendo (\
) en 4 (4
) cada vez y saltando en 7 (7
). Disminuir significa que resta 4 la primera vez, 8 la segunda vez, etc.fuente
JavaScript (ES6),
173169163150151148143 bytes ( Agrietado )Tengamos algo totalmente diferente ... y totalmente malvado .
Uso:
f(something) // returns 'Hello, World!'
Pruébalo en línea!
fuente
C # (.NET Core) ,
130152 bytes, AGRIETADA+22 bytes, me olvidé de seguir la nueva línea ... El programa funciona igual que antes, la nueva línea se agrega a cualquier salida.
Pruébalo en línea!
El recuento de bytes también incluye
Para empezar, fui por algo no demasiado loco. Puede tener múltiples respuestas.
El crack "oficial":
fuente
tcc, 89 bytes, descifrado por Dennis
Esto es particularmente malo debido a la resolución dinámica de tcc. Muchas funciones están predeclaradas e intentar sobrescribirlas simplemente no funciona.
fuente
puts
y pensé que salidas.)mprotect
siendo un trasero.Bash , 62 bytes, ( descifrado por ArchDelacy )
Sin alfanuméricos ni barras diagonales. Deberías divertirte con este.
Pruébalo en línea!
fuente
brainfuck , 7 bytes agrietados
Pruébalo en línea!
Buena suerte. (no funciona con todos los intérpretes BF
fuente
JavaScript (ES6), 102 bytes ( Agrietado )
La versión anterior tiene un queso masivo. Intentemos esto de nuevo ...
Pruébalo en línea!
Solución del autor:
Uso:
fuente
Cúbicamente , 159 bytes ( agrietado )
Esto será bastante fácil para aquellos que se sienten cómodos con Cubically. Pruébalo en línea!
fuente
Código de máquina 6502 (C64),
5153 bytes ( descifrado )Demostración en línea
Uso :,
SYS49152,[x],[n]
dondex
es un entero sin signo de 16 bits yn
es un entero sin signo de 8 bits .Invocado con valores incorrectos, es muy probable un bloqueo .
Para el craqueo, es posible que desee ejecutarlo en una instalación local de vicio , así que aquí hay un cargador BÁSICO para pegar en el emulador (
RUN
en el que colocar el programa$C000
):Actualización: se agregaron dos bytes para la dirección de carga para hacer de este un archivo C64 ejecutable
PRG
en respuesta a la discusión sobre metafuente
b7eb
llamadasaefd
, pero solo después de llamarad8a
(número de análisis como flotante (!) (wtf) (MS)) yb7f7
(convertir ese flotante a 16 bits sin signo int), así que primero tengo que llamarmeaefd
para consumir la primera coma.Python 2 , 63 bytes, agrietado
Solo para que la pelota ruede ...
Pruébalo en línea!
fuente
Pyth , 18 bytes ( agrietado )
Esto es extremadamente fácil, y cualquiera que conozca a Pyth lo rompería en un abrir y cerrar de ojos, pero aún así ... Tenga en cuenta que debe poner la Cadena entre comillas.
Pruébalo en línea!
fuente
JavaScript (solo navegador), 95 bytes ( agrietado )
No demasiado duro. Tiene múltiples soluciones.
fuente
Gelatina , 11 bytes ( agrietada )
Pruébalo en línea!
Entrada prevista:
fuente
05AB1E , 20 bytes ( agrietado )
Sin embargo, no debería ser demasiado difícil:
Utiliza la codificación 05AB1E . Pruébalo en línea!
fuente
Ly , 12 bytes ( agrietado )
Pruébalo en línea!
No espero que esto dure mucho, pero bueno.No duró mucho.fuente
Python3, 192 bytes Agrietado, supongo
El texto que lee es el primer argumento del programa:
python3 hw.py '[1,2,3]'
No sea cojo e intente poner una
print("Hello World!")
declaración como argumento ... de todos modos imprime un error después (al menos en la línea de comando), por lo que no creo que deba contar. (Editar: alguien hizo exactamente eso)fuente
Jalea ,
2021 bytes ( Agrietada )+1 byte - "... y una nueva línea final"
Pruébalo en línea!
Hay, de hecho, infinitas soluciones.
fuente
⁸
que por alguna razón falta en el enlace TIO, así que espero no confundirme.Lua 5.1, 44 bytes ( agrietado )
Tenga en cuenta que Lua 5.1 es un idioma diferente que Lua 5.2 o Lua 5.3. "Pruébelo en línea" no tiene Lua 5.1. Puede verificar su versión de Lua ejecutando
print(_VERSION)
. (Debe haber una solución en cualquier implementación que use el núcleo Lua 5.1 de PUC-Rio).Como arnés de prueba, puede usar algo como esto:
Pruebe el arnés en repl.it
fuente
C (GCC en TIO), 84 bytes de golf ( agrietado )
Aquí hay una versión sin golf que también funciona:
fuente
JavaScript (ES6), 92 bytes ( Agrietado )
Esta simple función de copia de cadena parece estar realmente resistiéndote a copiar cualquier cadena que se parezca
Hello, World!
...Pruébalo en línea!
fuente
Röda , 71 bytes ( agrietado )
Pruébalo en línea!
Uso:
push(/* input */) | f()
(donde f es una variable que mantiene la función anterior).fuente
JavaScript (ES6),
135119 bytes, ( Cracked )Pruébalo en línea!
fuente
Ruby , 88 bytes, Agrietado por w0lf
Pruébalo en línea!
fuente
JavaScript (ES6) 107 Bytes [Gracias Евгений Новиков] ( Agrietado )
Llama a la
i
función usando una cadena.El
console.log...
es para fines de prueba.¡Pruébelo en línea!
fuente
var
, (2)()
de un argumento de función de flecha, (3) reemplazarreturn
aeval("")
(4) eliminar;
al final. Solución de 110 bytes: pastebin.com/qwdm7fT7 Buena suerte