Este es el hilo conductor de la policía. El hilo de los ladrones está aquí .
Su desafío es hacer un programa que se ejecute para siempre sin detener 1 , a menos que obtenga una entrada o entradas particulares 2 . Si recibe esa entrada, debe terminar en un tiempo finito 3 . Este es el código de golf , por lo que la respuesta más corta que no ha sido descifrada por un ladrón dentro de una semana de publicar victorias. Después de que haya pasado la semana, marque su respuesta como segura y muestre la entrada de detención (en a > ! spoiler quote
). Si un ladrón rompe su envío, márquelo como agrietado y muestre la entrada de detención (en a > ! spoiler quote
).
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.
Haga que su entrada sea determinista y uniforme en todas las ejecuciones. Vea esta meta publicación para más detalles.
Por favor, no "implemente RSA" ni nada que signifique para los ladrones. Utilice características y lenguajes oscuros, no cifrado y hashing aburridos. No puedo aplicar esto con reglas, pero puedes esperar votos negativos torrenciales si todo lo que haces es sha(input) === "abcd1234"
.
1 Suponiendo que la computadora no se apaga, se rompe, se ve envuelta por el sol, se sobrecalienta en la muerte por calor del universo o alcanza el tiempo de espera TIO de los años 60.
2 El programa debe detenerse en al menos una entrada. Siempre que se repita para siempre en una entrada y se detenga en otra, funciona.
3 Esto debe ser <60 segundos, para que el código se pueda probar en TIO.
¿Está buscando presentaciones sin descifrar?
fetch("https://api.stackexchange.com/2.2/questions/135363/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>
fuente
R
errores de inmediato, sin siquiera ingresar la función para crackear. Yo diría que eso no cuenta como terminar realmente la función.Respuestas:
Malbolge, 128 bytes, descifrado por KBRON111
¡Que te diviertas!
(Sí, aprendí Malbolge solo por esto. Sí, me tomó un tiempo absurdamente largo finalmente trabajar. Y sí, valió la pena).
Envuelto, para que pueda verlo en su totalidad, er, "gloria":
Usé este intérprete para probarlo; No estoy seguro de si importa, pero pensé que especificaría por si acaso.
fuente
6
y la tercera es una de las cuatro:!
,#
,/
y-
. Pero la combinación no parece arreglar el alto. Lo puse aquí, tal vez alguien más inteligente encuentre una solución. Si alguien quiere, publicaré mañana cómo llegué a estas entradas. EDITAR: Ahora que lo pienso, mi programa que escribí con el propósito de realizar ingeniería inversa puede tener un error, y la primera entrada puede ser algo más6
. El tercer personaje sigue en pie.JavaScript (ES6), 17 bytes, Agrietado
En TIO, dado que no sé cómo hacer la línea de lectura de Node.js en TIO, solo pegue la entrada en la llamada de función. Esto es obvio para cualquiera que lo sepa, y no para cualquiera que no lo sepa.
Pruébalo en línea!
Responder:
fuente
NaN == NaN
es falso en muchos idiomas además de JavaScript. No lo llamaría una "rareza de lenguaje".NaN != NaN
es una característica de los números de coma flotante+
omax()
, pero a la mayoría de la gente no le importa: P)JS (ES6), 67 bytes ( agrietado )
Creo que no me equivoqué, podría tener una solución fácil que no vi.
Agradezco cualquier comentario, esta es una de mis primeras publicaciones
fuente
x
yy
son finitos, pero no voy a editar, puesto que ya estaba roto. Podrían haber sido 38 bytesPython 3.4, (40 bytes) Agrietado
fuente
x==x
en una variable llamadato_be
, por lo que podría hacer una referencia de Hamlet.Javascript (NO node.js)
La presentación deseada no usa throw.
Sugerencia para la grieta deseada:
Crack deseado:
fuente
throw
(todavía da un error)throw
, creo de verdad esta vez ya que Grant Davis no funcionó para mí. TodavíaTypeError
s.x=>{try{for(;x+"h";)}catch(e){for(;;)}}
para que cualquier error produzca un bucle sin fin, de modo que los errores de función prototipo faltantes (o cualquier error) den como resultado un bucle sin fin.C (gcc) , 75 bytes Agrietado
Pruébalo en línea!
Nunca he publicado en una policía-n-ladrones antes. Esperemos que esto no sea demasiado obvio.
Solución:
fuente
JavaScript (en el navegador), 79 bytes agrietado
Debe ejecutarlo en un navegador reciente (como el último Firefox ESR, el último Firefox, el último Chromium). Ejecutar en navegadores antiguos (como Netscape 2, IE 4) no cuenta.
Nota: Detenido por el navegador debido al tiempo de espera, no cuente un alto aquí.
Siempre tenga cuidado de no bloquear su navegador cuando pruebe estos códigos, y robe feliz ^ _ ^
fuente
setTimeout
como parámetro no funciona.var key=(()=>{setTimeout(args);return null})()
y luegocrackme(key)
PHP (descifrado por Vicente Gallur Valero), 65 bytes
Pruébalo en línea!
Más difícil de lo que parece. Editado para que sea posible en TIO, a costa de un montón de bytes. Toma entrada vía
$argv[1]
.fuente
Casco , 5 bytes agrietado
Pruébalo en línea!
Un poco de explicación, ya que este lenguaje aún es bastante nuevo:
←ø
obtiene el primer elemento de una lista vacía: devuelve un valor que puede asumir cualquier tipo, ya sea un tipo concreto o una función, que luego se aplicará a la entrada.∞
crea una lista infinita compuesta por copias del resultado anterior (que en la mayoría de los casos significará una lista de ceros infinitos).↑ε
toma elementos de esta lista siempre que sean "pequeños", es decir, su valor absoluto es ≤1; en una lista infinita de ceros esto nunca se detendrá.fuente
Braingolf , 4 bytes ( agrietado )
Pruébalo en línea!
Suuuper fácil, pero
veamos cuánto tardaResponder:
fuente
Ruby , 31 bytes ( descifrado por Eric Duminil )
Pruébalo en línea!
Tenga en cuenta que esto debe ejecutarse en un entorno en el que no haya una nueva línea final como resultado
gets
, de lo contrario, es imposible hacer que se detenga (creo) ya que cualquier cosa que termine en una nueva línea producirá un error y golpeará el rescate.fuente
3.methods
devuelve5
o sale del bucle.5
para pensar que la respuesta correcta implicaría la función que tenía ...Bash, 25 bytes ( agrietado )
Inspirado por Dennis '. Pruébalo en línea.
fuente
Bash 4.2, 14 bytes ( agrietado )
Intentemos esto de nuevo.
Esto no funciona en TIO, que usa Bash 4.3. La entrada es a través de argumentos de línea de comandos.
En Linux y con gcc instalado, Bash 4.2.53 se puede descargar y construir de la siguiente manera.
fuente
Retina , 78 bytes ( agrietado ) ( agrietado con la solución prevista )
Fue muy divertido escribir, espero que sea divertido descifrar
Pruébalo en línea!
Agrietado con una solución no deseada y la solución prevista dentro de un minuto el uno del otro. Uno publicó primero, uno comentó primero.
Solución prevista:
fuente
Node.js, 23 bytes ( Agrietado )
Solución Grant Davis
Mi solución
fuente
Java 8, 99 bytes, Agrietado
Esta es una lambda del tipo
Consumer<String>
.Sin golf:
Pruébalo en línea! (tenga en cuenta que el programa de prueba se bloqueará en la entrada vacía, ¡pero el lambda en sí no lo haría!) (también, use 'argumentos' no 'entrada' en TIO, ya que el programa de prueba usa argumentos, no STDIN)
Respuesta prevista:
fuente
Bash 4.2, 10 bytes ( agrietado )
Esto no funciona en TIO, que usa Bash 4.3. La entrada es a través de argumentos de línea de comandos.
En Linux y con gcc instalado, Bash 4.2.53 se puede descargar y construir de la siguiente manera.
fuente
Java: 1760 ( agrietado )
Siento que es demasiado malo jugar golf, así que solo ofusqué los nombres de las variables y lo hice 'desordenado'. De hecho, es tan malo, que voy a publicar sugerencias con el tiempo, para que pueda verlo agrietado.
Sugerencia 1: esto tiene entradas válidas teóricamente infinitas, pero hay una que es la más 'correcta'
Pruébalo en línea!
fuente
Braingolf , 18 bytes agrietado
Pruébalo en línea!
Liiiitle un poco más duro que el anterior, comenzaré a escribir uno real después de esto
fuente
i
no funciona£
). ¿Y por qué no-1
funciona? Esto es complicadoJavaScript (ES7), 41 bytes ( pirateado y descifrado )
Editar: corregido para evitar que se bloquee cuando no se le da ninguna entrada (gracias @totallyhuman por notarlo)
Probablemente existan varias soluciones, pero la esperada es relativamente simple.
Solución prevista:
fuente
Bash + Utils (descifrado por Dennis), 74 bytes
Espero que disfrutes del alquitrán, porque es la única utilidad que puedes usar.
Pruébalo en línea!
Crack previsto
fuente
Mathematica,
3626 bytes ( agrietado )Un bucle muy corto
#0[#;∞]
que seguirá ejecutándose una y otra vez hasta que se bloquee el núcleo ... (Esto$IterationLimit
es solo para asegurarse de que se atasque para siempre para la mayoría de las entradas).¡Pruébalo en Wolfram Sandbox! - si está atrapado en un bucle infinito, puede esperar hasta que se agote el tiempo de espera o puede presionar el icono cuadrado "abortar evaluación" a la izquierda del título del cuaderno
(unnamed)
.NOTA : esta función cambia su
$IterationLimit
configuración.fuente
JavaScript (Node.js), 18 bytes ( Agrietado )
Pruébalo en línea! Responder:
fuente
Symbol()
funcionaría.C #, 118 bytes ( agrietado )
No espero que esto dure demasiado, pero es más incómodo de lo que parece.
fuente
C, 140 bytes ( agrietado )
Esperemos que no haya demasiadas entradas que ni siquiera estén cerca de lo previsto que lo detengan, pero veamos.
Pruébalo en línea!
fuente
JavaScript (ES7), 73 bytes ( ¡ Agrietado !)
Soluciones no deseadas: fuerza bruta. El crack deseado involucra las matemáticas.
Tenga en cuenta que hay muchas soluciones (4194304) debido al módulo.
fuente
brainfuck , 170 bytes resquebrajados!
Pruébalo en línea!
fuente
nul
en brainfuck. Por cierto, puede eliminar dos primero>
guardar 2 bytes.JavaScript ES6 (Node.js> = 6.0) , 326 bytes (Seguro)
Mucho más simplificado que mi otro desafío , ya no estoy tratando de ofuscar el enfoque de la solución, lo que me ahorró muchos bytes. Esta vez,
process.kill()
no funcionará.Pruébalo en línea!
fuente
Swift 3, 14 bytes ( agrietado )
Para resolver esto, ponga su código antes o después de esta declaración.
fatalError()
, etc. antes de que no cuente.fuente
ambiguous semantics
.cQuents , 2 bytes ( Cracked 1 ) ( Cracked 2 )
Tenga en cuenta que esto alcanzará rápidamente el límite de salida de 128 KiB en TIO, haciendo que se detenga, pero cuando se ejecuta localmente se repetirá para siempre, excepto en la entrada que lo rompe. Encontrar esa entrada debería ser bastante fácil. Hasta que lo hagas,
:A
te seguirá sacando la lengua triangular.Tenga en cuenta también que esto debería ser justo
A
pero rompí los modos implícitos anoche. En versiones anteriores de intérpretesA
funcionaría bien.Grietas:
Pruébalo en línea!
fuente