Questo è il filo della polizia. Il thread dei ladri è qui .
La tua sfida è creare un programma che funzioni per sempre senza arrestare 1 , a meno che non ottenga un input o input 2 . Se riceve quell'input, deve terminare in un tempo finito 3 . Questo è code-golf , quindi la risposta più breve che non è stata decifrata da un ladro entro una settimana dalla pubblicazione delle vittorie. Dopo che è trascorsa la settimana, contrassegnare la risposta come sicura e mostrare l'input di arresto (in a > ! spoiler quote
). Se un ladro rompe l'invio, contrassegnalo come incrinato e mostra l'input di arresto (in a > ! spoiler quote
).
Le presentazioni sono preferibili essere eseguibili e crackabili su TIO . Sono consentiti invii non eseguibili o crackabili su TIO, ma includere le istruzioni per scaricarli / eseguirli.
Rendi deterministico il tuo input e uniforme su tutte le corse. Vedi questo meta post per i dettagli.
Per favore, non "implementare RSA" o qualsiasi cosa cattiva per i ladri. Usa lingue e funzionalità oscure, non noiose crittografia e hash. Non posso far valere questo con le regole, ma puoi aspettarti downgrade votivi se tutto ciò che fai è sha(input) === "abcd1234"
.
1 Supponendo che il computer non si spenga, non si rompa, non venga inghiottito dal sole, si surriscaldi nella morte termica dell'universo o colpisca il timeout TIO degli anni '60.
2 Il programma deve arrestarsi su almeno un ingresso. Fintanto che scorre per sempre su un ingresso e si ferma su un altro, funziona.
3 Deve essere <60 secondi, quindi il codice può essere testato su TIO.
Cerchi invii non crackati?
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>
R
errori immediatamente, senza nemmeno entrare nella funzione di crack. Direi che non conta come terminare effettivamente la funzione.