Nota : questa sfida è ora chiusa. Eventuali invii di futuri poliziotti non saranno considerati per la risposta accettata. Questo per garantire che nessuno possa pubblicare in futuro una regex molto semplice che rimanga solo senza crack perché nessuno è più interessato alla sfida.
La sfida della polizia
Devi scrivere una regex breve e offuscata, che soddisfi le seguenti specifiche:
Puoi scegliere qualsiasi sapore liberamente testabile online. C'è un buon elenco di tester online su StackOverflow . In particolare, Regex101 dovrebbe essere utile per iniziare, poiché supporta i gusti PCRE, ECMAScript e Python. È possibile aumentare il limite di timeout facendo clic sulla chiave nell'angolo in alto a destra, se necessario. Includere il tester scelto nella risposta.
Se non è disponibile un tester adatto per il tuo gusto preferito, puoi anche usare un interprete online come ideone e scrivere un piccolo script nella lingua host che le persone possano usare per testare la tua presentazione.
- È possibile utilizzare qualsiasi funzionalità di tale sapore, che non invoca direttamente la lingua host (come le funzionalità di valutazione del codice di Perl).
- Allo stesso modo, puoi usare qualsiasi modificatore (se il tuo sapore li ha), a meno che non risultino nella valutazione del codice.
- Il tuo regex deve accettare almeno una stringa S e rifiutare almeno una stringa T , ciascuna delle quali è lunga almeno 16 e non più lunga di 256 caratteri, in un ragionevole lasso di tempo (non significativamente più lungo di un minuto). S e T possono contenere caratteri Unicode che non sono ASCII, purché sia possibile inserirli nel tester online. Qualsiasi coppia di stringhe di questo tipo sarà la chiave per l'invio.
- Il tuo regex potrebbe richiedere arbitrariamente molto tempo su qualsiasi altro input.
Il nucleo della sfida è creare una regex la cui chiave è difficile da trovare. Cioè, dovrebbe essere difficile dire quale stringa non corrisponde o quale stringa corrisponde (o potenzialmente anche se entrambi i regex impiegano giorni per terminare su tutti tranne le stringhe della chiave).
La sfida dei ladri
Tutti gli utenti, inclusi quelli che hanno presentato la propria regex, sono incoraggiati a "crackare" altri invii. Un invio viene interrotto quando una delle sue chiavi viene pubblicata nella sezione commenti associati.
Importante: assicurati che entrambe le stringhe che pubblichi siano comprese tra 16 e 256 caratteri inclusi, anche se è possibile utilizzare quasi qualsiasi stringa per una parte della chiave.
Se un invio persiste per 72 ore senza essere modificato o decifrato, l'autore può rivelare una chiave valida modificandola in un tag spoiler nella sua risposta. Questo renderà la sua risposta "sicura", cioè non potrà più essere violata.
È consentito un solo tentativo di crack per invio per utente. Ad esempio, se invio all'utente X: "La tua chiave è 0123456789abcdef
/ fedcba9876543210
." e mi sbaglio, l'utente X riterrà la mia ipotesi errata e non sarò più in grado di presentare ulteriori ipotesi per tale invio, ma posso comunque crackare altri invii (e altri possono ancora infrangere tale invio).
Le comunicazioni incrinate vengono eliminate dalla contesa (a condizione che non siano "sicure"). Non devono essere modificati o eliminati. Se un autore desidera presentare una nuova regex, dovrebbe farlo in una risposta separata.
Non rompere la tua sottomissione!
Nota: per stringhe lunghe nei commenti senza spazi, SE inserisce le interruzioni di riga manuali sotto forma di due caratteri Unicode. Quindi, se pubblichi una chiave nei backtick che è così lunga da essere racchiusa tra caratteri non spaziali, non sarà possibile copiare la chiave direttamente in un tester regex. In questo caso, si prega di fornire un permalink al relativo tester regex con il regex del poliziotto e la chiave. La maggior parte dei tester include questa funzione.
punteggio
Il punteggio di un poliziotto sarà la dimensione della sua regex in byte (pattern più modificatori, potenziali delimitatori non vengono conteggiati), a condizione che non sia stato crackato. Vincerà il punteggio più basso di un invio "sicuro".
Il punteggio di un ladro sarà il numero di invii che hanno violato. In caso di pareggio, la dimensione totale in byte degli invii che hanno rotto verrà utilizzata come pareggio. Qui vince il conteggio dei byte più alto.
Come indicato sopra, qualsiasi poliziotto può partecipare come un ladro e viceversa.
Manterrò classifiche separate per le due parti della sfida.
Classifiche
Ultimo aggiornamento: 19/10/2014, 20:33 UTC
Cops:
Le presentazioni in corsivo non sono ancora sicure.
- nneonneo , 841 byte
- Wumpus Q. Wumbley , 10.602 byte
- Sp3000 , 52.506 byte
- user23013 , 53.884 byte
- nneonneo , 656.813 byte
ladri:
- user23013 , Cracked: 11, Dimensione totale: 733 + 30 + 2.447 + 71 + 109 + 121 + 97 + 60 + 141 + 200.127 + 7.563 = 211.499 byte
- nneonneo , Cracked: 10, Dimensione totale: 4.842 + 12.371 + 150 + 3.571 + 96 + 168 + 395 + 1.043 + 458 + 17.372 = 40.466 byte
- Wumpus Q. Wumbley , Cracked: 6, Dimensione totale: 22 + 24 + 158 + 32 + 145.245 + 145.475 = 290.956 byte
- Dennis , Cracked: 2, Dimensione totale: 70 + 73 = 143 byte
- harius , Cracked: 1, Dimensione totale: 9.998 byte
- g.rocket , Cracked: 1, Dimensione totale: 721 byte
- stokastic , Cracked: 1, Dimensione totale: 211 byte
- Sp3000 , Cracked: 1, Dimensione totale: 133 byte
- TwiNight , Cracked: 1, Dimensione totale: 39 byte