Nota : Este desafio está encerrado para novos envios de policiais. Isso é para garantir que ninguém possa postar envios que permaneçam ilegais porque não há mais ladrões interessados no desafio.
Neste jogo de policiais e ladrões, cada policial escreverá um programa simples para fornecer uma única saída. Eles tornarão públicas quatro coisas sobre seu programa:
- O idioma
- A duração do programa
- A saída desejada
- Uma versão codificada do código-fonte
Em seguida, os ladrões devem decifrar o código-fonte para que seu programa funcione como o original.
Regras da polícia
Você deve escrever um programa simples, que os ladrões tentem recriar.
Seu programa original deve ter uma funcionalidade simples: após a execução, ele gera uma única string / número e pára. Ele deve fornecer a mesma saída, independentemente de quando / onde é executado, e não deve depender de bibliotecas extras ou da Internet.
Seu programa e saída devem usar ASCII imprimível (novas linhas e espaços permitidos). A saída deve ter no máximo 100 caracteres e o programa deve levar menos de 5 segundos para ser executado em uma máquina razoável. Você também não tem permissão para usar hash (ou outras funções criptográficas) em seu programa.
Em seguida, você fornece uma versão codificada do código-fonte e a saída necessária. Você pode embaralhar seu código-fonte da maneira que desejar, desde que os caracteres sejam conservados.
Sua pontuação é o programa mais curto que você enviou e que não foi quebrado. Após um período de uma semana, um envio sem rachaduras se tornará imune. Para reivindicar essa imunidade, edite sua resposta para mostrar a resposta correta. (Esclarecimento: Até que você revele a resposta, você não está imune e ainda pode ser quebrado.) A pontuação mais baixa vence.
Exemplo simples de respostas de policial
Perl, 20
ellir"lnto Wo d";prH
Hello World
Ou...
Perl, 15
*3i)xp3rn3*x3t(
272727
Regras de ladrão
Os ladrões postarão suas tentativas de cracking como respostas em um tópico separado, localizado aqui .
Você tem uma tentativa de quebrar cada envio. Sua tentativa de quebra será uma versão sem codificação do código-fonte. Se o seu palpite corresponder à descrição (mesmos caracteres, resultado e, é claro, o idioma), e você for o primeiro palpite correto, então ganhará um ponto. É importante observar que o seu programa não precisa corresponder exatamente ao original, basta usar os mesmos caracteres e ter a mesma funcionalidade. Isso significa que pode haver mais de uma resposta correta.
O ladrão com mais pontos (rachaduras bem-sucedidas) vence.
Respostas de ladrões de exemplo simples
O seu programa foi
print "Hello World";
. (Emboraprint"Hello World" ;
também possa ter funcionado.)Seu programa foi
print(3**3x3)x3
Submissões seguras
- ASP / ASP.Net, 14 (Jamie Barker)
- Befunge-98, 15 (FireFly)
- GolfScript, 16 anos (Peter Taylor)
- CJam, 19 (DLosc)
- GolfScript, 20 (usuário23013)
- Perl, 21 (primo)
- Python, 23 (mbomb007)
- Ruby, 27 anos (histocrata)
- SAS, 28 (ConMan)
- Ruby, 29 (histocrata)
- Python, 30 (mbomb007)
- JavaScript, 31 (hsl)
- Ruby, 33 anos (histocrata)
- Marbelous, 37 (es1024)
- Ruby, 43 anos (histocrata)
- PHP, 44 (kenorb)
- Ruby, 45 (histocrata)
- Marbelous, 45 (es1024)
- Python 2, 45 (Emil)
- PHP, 46 (Ismael Miguel)
- Haskell, 48 (nooodl)
- Python, 51 (DLosc)
- Python, 60 (Sp3000)
- Python 2, 62 (peixes enlameados)
- JavaScript, 68 (Jamie Barker)
- Mathematica, 73 (Arcinde)
- Haskell, 77 (proudhaskeller)
- Python, 90 (DLosc)
- C ++, 104 (usuário23013)
- ECMAScript 6, 116 (Mateon1)
- C ++ 11, 121 (es1024)
- Grass, 134 (usuário23013)
- PowerShell, 182 (christopherw)
Envios não resolvidos
Em ordem de horário da postagem. Esta lista é cortesia de muitos usuários.
- CoffeeScript, 96 (edição)
- Python 3, 70 (Sp3000)
- TinyMUSH 3.1, 20 (Muqo)
- GolfScript, 32 (decaimento beta)
- Python 2, 101 (Mateon1)
- Lua, 49 (ChipperNickel)
- Python, 61 (imallett)
- Java 6+, 218 (nhahtdh)
- CJam, 51 (Martin Büttner)
- J, 22 (FireFly)
- Marbelous, 106 (es1024)
- Marbelous, 107 (es1024)
- JavaScript, 79 (FireFly)
- CJam, 47 (usuário23013)
- Rust, 118 + Clojure, 106 + outros (Vi.) - versão 2
- Marbelous, 144 (es1024)
- Python 2, 80 (MrWonderful)
- Perl, 53 (DLosc)
- Perl, 26 (primo)
- Mathematica, 31 (Arcinde)
- Marbelous, 144 (es1024)
- Montagem, 78 (krzygorz)
- J, 14 (compartilhamento de algoritmo)
- Java 8, 157 (TheBestOne)
Uma pequena ferramenta para verificar soluções, cortesia de n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳
fonte
Respostas:
Python 3, tamanho 74 ( rachado )
Python não era o mesmo depois de ser reeducado pelo Big Brother.
Entrada:
Existem duas novas linhas no final das linhas 1 e 2.
Resultado:
Observe que cada um
True
está em sua própria linha.fonte
2+2==5
uma quarta afirmação até descobrir que=
era fácil demais.Python 3, tamanho 12 ( rachado )
Meu programa não produz saída nem erros.
fonte
int
por um tempo.python
e depois digitar minha solução no prompt. Mas funciona, se eu colocar minha solução em um arquivo e tipopython file
.CJam, tamanho 20 ( rachado )
Código
Resultado
fonte
Python 2, tamanho 50
Rachado
Já sabemos a resposta à pergunta, mas qual é a pergunta?
Código
Observe que não há espaços à direita ou novas linhas. O único caractere de espaço em branco é o espaço único depois
print
.Resultado
Tentei equilibrar o comprimento e a dificuldade do código, mas não me surpreenderia se eu o perdesse um pouco. Espero que seja suficiente desencorajar a força bruta, pelo menos.
fonte
Pitão - 71 Rachado
Código
Resultado
* Originalmente, George Lucas tinha Han interrompendo C3-PO. **
** Ele chamou isso de sua melhor idéia desde Jar-Jar.
Nota interessante: apesar de todas as mudanças pelas quais Pyth passou, ainda há uma resposta válida aqui!
Original
Explicação
Atualizada
Desculpem a formatação da explicação deficiente, não sei como usar blocos de spoiler: S (o @ Sp3000 tornou um pouco melhor para você)
Agora você pode executar o Pyth online! Experimente aqui. Obrigado @isaacg :)
fonte
<br>
CJam, tamanho 51 [SEGURO]
Código
Resultado
Você pode brincar com isso no intérprete online .
Isso deve ser mais quebrável do que parece.
Sugestão
Solução
fonte
Befunge-98, tamanho 15 [SEGURO]
Código
Resultado
Original
fonte
3312
,3300
e vários outros perto3314
. Tão perto ...GolfScript (16 bytes) [SEGURO]
Saída esperada:
Fonte original:
fonte
:
.Ruby, 17 ( Rachado )
Indo para algo realmente curto neste momento.
Resultado:
fonte
Python, 69 caracteres [ cracked by grc ]
Mexidos:
Resultado:
Este é apenas um pouco de diversão inofensiva :) Testado no CPython 2.7.8, 3.3.2 e no PyPy3 2.3.1.
Explicação
fonte
Python, tamanho 56 ( rachado )
Código
for i in "iprint()".join(([2,3,7,0,9,chr((-7+732^70)])))
Resultado
hi mom
fonte
Python 3, 70 caracteres
Mexidos:
Saída (99 caracteres):
Atualizar
Já faz uma semana, então, em vez de postar a resposta, aqui está uma dica:
fonte
Pyth , 11
Resultado:
fonte
JavaScript, 94 rachado por FireFly
Resultado
Original
fonte
alert
primeiro, já que os índices combinavam muito bem com os caracteres necessários. Interessante coincidência.Syntax Error: Unexpected String
Ruby, 38 - rachado por Martin Büttner
Resultado:
Original:
fonte
print
edowncase!
eram arenques vermelhos. Eu esperava a resposta para usarputs
, não pensei$><<
.Python 3, tamanho 16 ( rachado )
Código:
Saída (com nova linha no final):
fonte
hello
eram um anagrama deimport
. ^^Perl - 47 ( cracked by grc )
Código (também há um espaço)
Resultado:
Você pode executá-lo on-line aqui e funciona sob
strict
ewarnings
.fonte
strict
ewarnings
me avise.Ruby, 33 - decifrado pelo usuário23013
Resultado:
Original:
fonte
puts
obviamente será a primeira coisa a existir,.next
outra palavra-chave que pode ser usada, e o resto é algum tipo de feitiçaria com$
variáveis ruby e criação de array de caracteres ... +1Python2, 132 caracteres
Saída (com uma nova linha):
Versão atualizada, 96 caracteres
Resposta à versão original sugerida em
exec
vez decompile
+eval
, então aqui está uma versão simplificada:Atualização: rachado
Totalmente rachado por Alex Van Liew e KennyTM . As soluções originais foram (role para a direita para revelar o spoiler):
fonte
\n
literais de strings internas). Com as novas linhas, o código pode ser menor.x
s ec
s para eu fazer o que eu quero fazer: PDon't count ones which exist. Count ones which do not exist
.Ruby, 29 [seguro]
Tentando ver o quão curto eu consigo entrar em Ruby sem ser rachado.
Código
Resultado
Original
Explicação
fonte
PHP, tamanho 49 [ Rachado por Martin Büttner ]
Código
Resultado
fonte
MATLAB, 41 bytes
Rachado pelo feersum
Resultado
fonte
Perl, 36 ← rachado por grc
Código
Resultado
Testado aqui
fonte
Haskell, 100 caracteres (inválido, saída muito longa)
Código
Resultado:
"\er\\e\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\"\\\\\\\\\\\\\"\\\\\\\
Original
fonte
fix show
. DefinitivamenteJ, 22 bytes
Código
Saída (97 caracteres)
Eu espero que isso seja praticamente impossível ...
fonte
CJam, 32 bytes ( quebrado )
Fonte mexida
Resultado
fonte
Pitão - 35 - Rachado
No espírito de @ MartinBüttner:
Código
Resultado
Tente decodificá-lo online aqui.
fonte
TinyMUSH 3.1 , 20
Mexidos:
Resultado:
fonte
Python 3, comprimento 110 [ cracked by grc ]
Mexidos (
\n
denota uma nova linha)Resultado:
Aqui está outro divertido - não destinado a ser difícil, mas apenas algo incomum e confuso. :)
Explicação
fonte
Javascript, 29 - Rachado
Executar em um console do navegador Chrome
Código
Resultado
Código original
fonte