महत्वपूर्ण व्हाट्सएप: पुलिस


51

इस चुनौती के उद्देश्य के लिए, हम व्हॉट्सएप को केवल लाइनफीड (0x0A) और रिक्त स्थान (0x20) के रूप में परिभाषित करेंगे । ध्यान दें कि अधिकांश भाषाएं और रेगेक्स फ्लेवर कई अन्य वर्णों को व्हाट्सएप के रूप में मानते हैं, एएससीआईआई रेंज के अंदर और बाहर दोनों, ताकि आप संबंधित बिल्ट-इन का उपयोग करने में सक्षम न हों।

पुलिस की चुनौती

आपको अपनी पसंद की भाषा में एक कार्यक्रम या फ़ंक्शन लिखना चाहिए, जिसमें एक स्ट्रिंग होती है, जिसमें ASCII (NUL को छोड़कर) अक्षर शामिल होते हैं, इनपुट के रूप में और इसे हटाए गए सभी व्हाट्सएप के साथ आउटपुट करता है। उदाहरण के लिए यदि आपको निम्नलिखित इनपुट मिले:

H e l l o,
 W o r l  d!

आपको आउटपुट चाहिए

Hello,World!

तब आपका सबमिशन आपके व्हाट्सएप हटाए गए (आपके समाधान को इनपुट के रूप में पास करने की समान प्रक्रिया के साथ आपका स्रोत कोड होगा , हालांकि आपके समाधान में ASCII रेंज के बाहर के अक्षर भी हो सकते हैं)। आपका लक्ष्य यह सुनिश्चित करना है कि व्हॉट्सएप को आपकी पसंद की भाषा में एक वैध समाधान प्राप्त करने के लिए डालने की आवश्यकता है। ध्यान दें कि लुटेरे आपके द्वारा हटाए गए से कम व्हाट्सएप डाल सकते हैं, लेकिन अधिक नहीं। यह भी याद रखें कि लुटेरों को आपके सटीक कोड से मेल नहीं खाना है, उन्हें बस कोई वैध समाधान खोजना है।

आपके उत्तर में निम्नलिखित शामिल होना चाहिए:

  • भाषा (और यदि आवश्यक हो तो संस्करण) जिसमें आपने अपना समाधान लिखा था।
  • व्हॉट्सएप हटाने से पहले अपने समाधान की बाइट गिनती ।
  • व्हॉट्सएप के साथ आपका समाधान निकाल दिया गया।

आपका समाधान या तो एक कार्यक्रम या कार्य हो सकता है, लेकिन स्निपेट नहीं और आपको REPL वातावरण नहीं मानना ​​चाहिए। आप STDIN, कमांड-लाइन तर्क या फ़ंक्शन तर्क और आउटपुट STDOUT, फ़ंक्शन रिटर्न मान या फ़ंक्शन (आउट) पैरामीटर के माध्यम से इनपुट ले सकते हैं।

निष्पक्षता के हित में, आपकी चुनी हुई भाषा के लिए स्वतंत्र रूप से उपलब्ध दुभाषिया या संकलक होना चाहिए।

आपको हैशिंग, एन्क्रिप्शन या रैंडम नंबर जेनरेशन के लिए बिल्ट-इन का उपयोग नहीं करना चाहिए (भले ही आप एक निश्चित मूल्य पर रैंडम नंबर जनरेटर को सीड करते हैं)। आपका समाधान किसी उचित डेस्कटॉप मशीन पर 10 से कम सेकंड में 100 वर्ण या उससे कम की किसी भी स्ट्रिंग को संसाधित करने में सक्षम होना चाहिए।

यदि आपका उत्तर 7 दिनों (168 घंटों) के भीतर क्रैक नहीं किया गया है, तो आप अपना स्वयं का समाधान प्रकट कर सकते हैं जिस बिंदु पर आपका उत्तर सुरक्षित माना जाता है । जब तक आप अपने समाधान को प्रकट नहीं करते हैं, तब भी यह लुटेरों द्वारा क्रैक किया जा सकता है, भले ही 7 दिन पहले ही बीत चुके हों। सबसे छोटा सुरक्षित उत्तर जीतता है (व्हॉट्सएप हटाने से पहले मापा जाता है)।

यदि आपका उत्तर क्रैक हो जाता है, तो कृपया अपने उत्तर के शीर्षलेख में, इसी लुटेरे के उत्तर के लिंक के साथ इंगित करें।

लुटेरों के हिस्से के लिए यहां जाएं

अनियंत्रित सबमिशन

<script>site = 'meta.codegolf'; postID = 5686; isAnswer = false; QUESTION_ID = 103182;</script><script src='https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js'></script><script>jQuery(function(){var u='https://api.stackexchange.com/2.2/';if(isAnswer)u+='answers/'+postID+'?order=asc&sort=creation&site='+site+'&filter=!GeEyUcJFJeRCD';else u+='questions/'+postID+'?order=asc&sort=creation&site='+site+'&filter=!GeEyUcJFJO6t)';jQuery.get(u,function(b){function d(s){return jQuery('<textarea>').html(s).text()};function r(l){return new RegExp('<pre class="snippet-code-'+l+'\\b[^>]*><code>([\\s\\S]*?)</code></pre>')};b=b.items[0].body;var j=r('js').exec(b),c=r('css').exec(b),h=r('html').exec(b);if(c!==null)jQuery('head').append(jQuery('<style>').text(d(c[1])));if (h!==null)jQuery('body').append(d(h[1]));if(j!==null)jQuery('body').append(jQuery('<script>').text(d(j[1])))})})</script>


सम्बंधित। (प्रेरणा, वास्तव में।)
मार्टिन एंडर


8
@SeeOneRhino क्यों? डाकू को पुलिस से अधिक बाइट्स का उपयोग न करके, व्हाट्सएप में समस्या को हल करना होगा। जब तक एक पुलिस को एक अच्छी तरह से घिरे हुए व्हॉट्सएप का जवाब नहीं मिलता है, जो कि कोई भी मेल नहीं खा सकता है, इस चुनौती में व्हॉट्सएप के जवाब आम तौर पर सबसे कमजोर होते हैं।
मार्टिन एंडर

1
@SeeOneRhino इसके अलावा, टैब को व्हॉट्सएप के रूप में नहीं गिना जाता है, इसलिए उन्हें हटाया नहीं जाएगा।
mbomb007

4
कोई हेक्सागोनी प्रस्तुतियाँ इस बार, मुझे लगता है
MildlyMilquetoast

जवाबों:


17

हास्केल, 100 बाइट्स, निकमी द्वारा फटा

main=interact$iddoidlinesidwordsdoidoidoid=doiddoid<-dooiidoid<-dooiddoiddodoid

यह एक पूर्ण कार्यक्रम और एक दादावादी कविता है।


क्षेत्र के साथ कोड (यह ऑनलाइन प्रयास करें!)

main=interact$id doid lines id words
doid oi d o id=do
 iddoid<-do oi id
 oid<-do o iddoid
 do d oid

अभी भी काफी काव्यात्मक दिख रहे हैं, अगर आप मुझसे पूछें।

डी-समझ से परे

main = interact f
f s = do
 l <- lines s
 w <- words l
 id w

व्याख्या

do-Notation केवल वाक्यात्मक चीनी है, इसलिए fसमतुल्य रूप के रूप में लिखा जा सकता है

f s = lines s >>= words >>= id

सूचियों के लिए >>=-ऑपरेटर को परिभाषित किया जाता है concatMap, इसलिए fबन जाता है

f = concat . map id . concat . map words . lines

तो एक इनपुट दिया "a b\nc", linesनई-पंक्तियों पर इनपुट विभाजन ["a b","c"], wordsउपज सफेद स्थान पर प्रत्येक पंक्ति विभाजन [["a","b"],["c"]](के रूप में मैं केवल अब इस नई पंक्तियां शामिल एहसास हुआ, तो linesवास्तव में जरूरत नहीं है)। एक बार श्रृंखलाबद्ध देता है ["a","b","c"], idपहचान समारोह है और अंतिम संयोजन स्ट्रिंग पैदावार जैसे कोई प्रभाव नहीं है और "abc"


3
क्या मुझे यह कहने की ज़रूरत है कि मुझे दादा की कविताएँ पसंद हैं?
दादा


@ निम्मी हां, अच्छा हुआ।
लकोनी

12

रिले द्वारा क्रैक किया गया C, 475 बाइट्स

सी के कुछ हिस्से वास्तव में यह देखना बहुत आसान बनाते हैं कि व्हॉट्सएप को कहां जाना चाहिए। ग पूर्व प्रोसेसर, हालांकि, नहीं करता है। तो इस कोड को दो हिस्सों में विभाजित किया गया है: लाइन 17 (व्हॉट्सएप के साथ 236 अक्षर) तक कोड लगभग वंचित है, और उसके बाद (व्हाट्सएप के साथ 239 अक्षर), शुभकामनाएं!

लंबे शॉट से इस प्रतियोगिता को जीतने वाला नहीं, लेकिन मैं यह देखना चाहता था कि सी-प्री-प्रोसेसर के साथ क्या किया जा सकता है।

#include<unistd.h>#defineachar#defineb*#definecwrite#definedstdin#defineestdout#definefread#defineg(#defineh)#defineiwhile#definejif#definek0#definel&#definem,#definen=#defineo;#definep1#definegpmlmlh#defineabo#definemldmp#definejgdoabo#definelbabod#definegfhaboc#definejgmben#definepmlfg#definegpmlbintmain(){ajgajgmljgigpmlkmlgpmlhjgd!=''&&gpm!='\n'gfgpmlgpmlo}

संकलन (चेतावनियों के साथ, यदि आप उन्हें सक्षम करते हैं) gcc -std=c89 -ansiजैसे और साथ काम करते हैंcat file | ./a.out


यह बहुत तेजी से फटा था जितना मैंने सोचा था, बधाई! मेरी रणनीति #definesस्पष्ट टोकन सीमाओं को हटाने के लिए उपयोग करना था (जैसे ';') और फिर इसका उपयोग #definesकरने के लिए और अधिक प्रयोग करें ताकि वे कैसे फेरबदल कर सकें।

यह, वैसे ही, जैसा कि केवल स्पष्ट व्हाट्सएप को जोड़े जाने के बाद कोड दिखता है:

#include <unistd.h>
#define a char
#define b *
#define c write
#define d stdin
#define e stdout
#define f read
#define g (
#define h )
#define i while
#define j if
#define k 0
#define l &
#define m ,
#define n =
#define o ;
#define p 1
// thus begins the obfuscation
#define gpmlmlh
#define abo
#define mldmp
#define jgdoabo
#define lbabod
#define gfhaboc
#define jgmben
#define pmlfg
#define gpmlb
int main(){
    ajgajgmljgigpmlkmlgpmlhjgd!=''&&gpm!='\n'gfgpmlgpmlo
}

5
PPCG में आपका स्वागत है! :)
मार्टिन एंडर

1
फटा वास्तव में मज़ा यह एक तरीका है।
रिले

9

ऑक्टेव, 69 बाइट्स, सेफ!

@(U)eval([85329685312682956148388531268295156241''])

इनपुट प्रारूप: नई लाइनों को कमांड प्रॉम्प्ट में सीधे इनपुट नहीं किया जा सकता है। इस तरह से संघनन द्वारा स्ट्रिंग बनाएँ:

str = ['This is ',10,'a',10,'string']
str = This is
a
string

फ़ंक्शन को इस तरह से कॉल करें (व्हॉट्सएप जोड़ें):

f=@(U)eval([85329685312682956148388531268295156241''])  
f(['This is ',10,'a',10,'string'])

मूल कोड:

काम करने के लिए आपको केवल 66 बाइट्स की आवश्यकता थी, लेकिन मैंने हेडर में 69 लिखा था ताकि बहुत अधिक जानकारी न दी जा सके।

मूल कोड इस तरह दिखता है:

@(U)eval([853 296 853 126 829 561 48 38 853 126 829 51 562 41 ''])

स्पष्टीकरण:

@(U)eval(.....)    % Anonymous function taking U as the input variable

U कोड बिंदु है 85ASCII तालिका में है, इसलिए यह ऐसा प्रतीत होगा जैसे पहले स्थान के बाद होना चाहिए 85गलत!

यदि हम 853इसके बजाय स्थान सम्मिलित करते हैं , तो हमें वर्ण संख्या प्राप्त करनी चाहिए853 , है ना ..? का उपयोग करना charहै कि अगर एक पहचानी चरित्र है की जाँच करने के लिए:

char(853)
warning: range error for conversion to character value

हालाँकि, हम उपयोग नहीं करते हैं char कोड में , हम छोटे संस्करण का उपयोग करते हैं जहां हम एक खाली स्ट्रिंग के साथ संख्याओं को बदलते हैं [853 '']। आउट ऑफ रेंज त्रुटि देने के बजाय, छोटा संस्करण केवल संख्या मापांक 256 लेता है।

बस इतना ही होना है 85+3*256 = 853। जबकिchar(853) चेतावनी देता है, [853,'']रिटर्न देता है U

ऑक्टेव में इस कार्य को करने का स्पष्ट तरीका है:

@(U)U(U~=10&U~=32)

हम जानते हैं कि पहले के बाद एक शुरुआती कोष्ठक (कोड बिंदु 40) होना चाहिए U29स्पष्ट रूप से फिट नहीं है इसलिए हम अंतरिक्ष को एक और सही स्थान पर स्थानांतरित करते हैं और प्राप्त करते हैं 296mod(296,256) = 40। बिंगो!

इस तरह जारी रखें और अनुक्रम के साथ समाप्त करें:

[853 296 853 126 829 561 48 38 853 126 829 51 562 41 '']
ans = U(U~=10&U~=32)

अंत में, हम evalस्ट्रिंग को कोड में बदलने के लिए उपयोग करते हैं।


3
+1 को 2 लाइनों में इनपुट प्रारूप की व्याख्या करने के लिए, जबकि मुझे 10: -D
लुइस मेंडो

1
खैर, अभी भी कोई विचार नहीं है, सिवाय इसके कि मैं Uसंख्या के उस समूह के बीच पत्र पहचानता हूं :-)
लुइस मेंडू

2
बहुत अच्छी ट्रिक! यह पागल है कि ऑक्टेव चरित्र कोड के साथ ऐसा करता है। मुझे इसका कोई अंदाजा नहीं था। लेकिन तब, जब आधिकारिक डॉक्टर कहते हैं कि आप क्या उम्मीद कर सकते हैं कि ऑक्टेव दुर्घटना से यूनिकोड का समर्थन करता है ...: --P
लुइस मेंडो

7

जावास्क्रिप्ट ईएस 6, 199 बाइट्स, SLuck49 द्वारा फटा

जोड़ने के लिए व्हॉट्सएप के 33 बाइट्स के साथ एक बल्कि भारी प्रविष्टि।

s=>eval(atob`ISYgJiAtOkI8Qk97BRBeaxZFShoUZSsiOGkMenNy`.replace(/./g,(c,i)=>String.fromCharCode(c.charCodeAt()^(k+="SecretCode".split(/\w/)[i%11].length)),k=0)).join``

अच्छा एक .. मुझे लगता है कि हमें एन्क्रिप्टेड स्ट्रिंग को एक्सोर करने के लिए व्हाट्सएप की उचित मात्रा को "सीक्रेटकोड" से जोड़ने और उचित स्रोत प्राप्त करने की आवश्यकता है ~
पैट्रिक रॉबर्ट्स

@PatrickRoberts हां, बिल्कुल।
अरनौलड

मुझे पहले से ही सभी संभावित संयोजनों का परीक्षण करने वाली एक स्वचालित स्क्रिप्ट मिल गई है, यह सिर्फ समय की बात है ... हाथों को एक साथ मिलाता है, उसकी बुराई योजना पर काम कर रहा है
पैट्रिक रॉबर्ट्स

काहे ... यह मैंने जितना सोचा था उससे अधिक समय ले रहा है। मैं एन कोड गोल्फ चुनौती लिखने की सोच रहा हूं, संभव है कि लंबाई एन की एक सरणी और तत्वों के लिए योग करने वाले एस को देखते हुए क्रमपरिवर्तन की संख्या की गणना करें। अभी मैं [ 10, 0, 0, 0, 0, 9, 8, 1, 5, 0, 0 ]अंतराल अनुक्रम के लिए हूँ और सरणी के लिए मेरा पुनरावृत्ति कार्य है (a)=>{for(var x=0;!a[x];x++);if(a.length-x>1){a[0]=a[x]-1;a[x]=(x==0?a[x]:0);a[x+1]++;}else{a[0]=a[x]+1;a[x]=0;i=0}}। मैंने शुरू किया [ 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]
पैट्रिक रॉबर्ट्स



6

Befunge-93, 58 बाइट्स, सुरक्षित!

_vv$v<~:!`:<#^0*@-:0*5|845\+`-v0,<#-^<

इसे ऑनलाइन आज़माएं!

मूल कार्यक्रम

_vv
 $ v<
 ~:!`
 :<#^0
*  @
-:0
*5 |
8
45
\+`
-
v0,<
#-
^<

इसे ऑनलाइन आज़माएं!

इसके लिए चाल यह थी कि निष्पादन का मार्ग क्षैतिज की तुलना में अधिक ऊर्ध्वाधर था, फिर ऊर्ध्वाधर रास्तों को आगे बढ़ाने के लिए विभिन्न रिक्त स्थान कोड में यादृच्छिक रूप से डाले गए थे। एक बार जब लाइन टूट जाती है और व्हॉट्सएप को आखिरकार हटा दिया जाता है, तो उम्मीद थी कि एक दूसरे से संबंधित ऑपरेशन कैसे होंगे, यह इंगित करने के लिए बहुत कम है।

इस मामले में, जो काफी मुश्किल नहीं था, मैं भी थोड़े-बहुत इंटरलेविंग में फेंक दिया, इसलिए कई ऑपरेशन समाप्त हो गए, जो अलग-अलग कोड पथों द्वारा निष्पादित किए जा रहे थे, जो एक दूसरे से लंबवत बह रहे थे। यह विचार कि यदि आपको लगा कि आप किसी विशेष कमांड के लिए सही स्थिति में हैं, तो आपको यह महसूस नहीं होगा कि आपको कोड में बाद में फिर से इसका उपयोग करने की आवश्यकता हो सकती है।

यकीन नहीं होता कि यह सब कुछ चीजों को जटिल बनाने की कोशिश में लायक था, या लोग इसे हल करने की कोशिश करने से भी बाज नहीं आए। :)

कोड स्पष्टीकरण

_      Since an empty stack is treated as zero, this initially just branches right.
v      The program flow is then directed downwards.
$      And this drop command initially does nothing because the stack is still empty.
~      A character is read from stdin.
::     Two duplicates are created.
55+-   We subtract 10 from the first copy (the 0- is just a nop to confuse things).
\48*-  And subtract 32 from the second copy.
*      The product of those two will be zero if the character is a newline or space.
_      So if we got whitespace, our branch goes right again repeating the loop.

v      If not, we go left, wrapping around till we hit the down arrow in column 3.
:<:    Again we make two duplicates of the character.
0`!|   One copy is used to compare if it's not greater than zero.
@      If it's not (i.e. it's the EOF), the branch goes up and we terminate.
<      Otherwise we go down and to the left.
,      Output the second copy of the character, leaving one remaining on the stack.
0      Push a zero to force the next branch right.
v      Redirect the flow down, wrapping to the top again.
_      Back at our initial branch, the zero we pushed forces us right.
v      Again the program flow is directed downwards.
$      And the drop command gets rid of the last duplicate character.
~      So now we're back reading the next character and the loop repeats.

5

सी # 6, 201 बाइट्स, लिंक एनजी द्वारा क्रैक किया गया

usingSystem.Linq;_=>string./**/#iftrueJoin(/*"*//*/""/**//*/"*/",#elseConcat(//*/,#endiffrommin""letp=$@"{@""[1]}"fromiin(_.Replace(p,@""))where!new[]{p[0]^32^10}.Contains(i)select@i);

184 बाइट्स ध्वस्त हो गए, जिससे आप व्हॉट्सएप के 17 बाइट छोड़ गए।

Concatमेरे इच्छित समाधान का उपयोग करते हुए क्रैक किया हुआ समाधान Join, यहाँ पर इच्छित समाधान है:

_=>string./**/
#if true
Join(/*"* //*/""/**//*/"* /",#elseConcat(//*/,
#endif
from m in" "let p=$@"{@"  "[1]}"from i in(_.Replace(p,@"
"))where!new[]{p[0]^32^10}.Contains(i)select@i);

यह काम करने के लिए c # 6+ की आवश्यकता है, क्या आप इसे जोड़ सकते हैं?
TheLethalCoder


5

MATL , 22 बाइट्स। फटा और फटा

यह एक प्रोग्राम है जो STDIN के माध्यम से इनपुट लेता है और STDOUT के माध्यम से आउटपुट उत्पन्न करता है।

रिक्त स्थान या newlines के बिना कोड:

t'@*'dm1e5%Mdw%Y(

MATL स्ट्रिंग इनपुट कैसे लेता है, इस कारण इनपुट प्रारूप थोड़ा अजीब है। नई लाइनों के साथ स्ट्रिंग्स को सीधे STDIN के माध्यम से दर्ज नहीं किया जा सकता है, क्योंकि प्रत्येक इनपुट के लिए एक ही लाइन होनी चाहिए (newline इनपुट के अंत को चिह्नित करता है)। तो प्रारूप इस प्रकार है:

  1. एक स्ट्रिंग एकल उद्धरण के साथ संलग्न है । यदि स्ट्रिंग सामग्री में एकल उद्धरण शामिल हैं, तो वे डुप्लिकेट द्वारा बच जाते हैं । उदाहरण:'I''m a string'

  2. Newlines के साथ एक स्ट्रिंग में प्रवेश करने के लिए एक को newlines पर स्ट्रिंग को विभाजित करने और ASCII कोड के रूप में संख्याओं सहित सब कुछ (वर्ग कोष्ठक के माध्यम से) को विभाजित करने की आवश्यकता होती है । उदाहरण के लिए, बीच में एक नई रेखा के साथ मेरे पहले और अंतिम नामों द्वारा गठित स्ट्रिंग पर विचार करें। इसे दर्ज किया जाएगा['Luis' 10 'Mendo']

    यह किसी भी अन्य (संभवतः गैर-मुद्रण योग्य) ASCII कोड दर्ज करने की अनुमति देता है। तो उपरोक्त आइटम 1 में स्ट्रिंग वैकल्पिक रूप से दर्ज की जा सकती है ['I' 39 'm ' 97 32 'string']। इसे यहां देखें

    एकमात्र शर्त यह है कि ब्रैकेट के भीतर कम से कम एक भाग एक स्ट्रिंग है। यह किसी भी संख्या को समवर्ती करते समय ASCII कोड के रूप में व्याख्या करने के लिए मजबूर करता है।

इस प्रारूप का उपयोग करते हुए अजीब सौभाग्य के बारे में क्षमा करें !

मूल समाधान

t' @ *'dm1e 5%
Mdw%Y
(

प्रत्येक %एक टिप्पणी प्रतीक है, और इसलिए शेष पंक्ति को अनदेखा किया गया है।

स्पेस कुछ भी नहीं करते हैं, लेकिन विभाजक के रूप में सेवा करते हैं। उदाहरण के लिए,1e5 स्थान के बिना, संख्या के रूप में व्याख्या की जाएगी 100000

t इनपुट लेता है और इसे डुप्लिकेट करता है।

' @ *'उस स्ट्रिंग को धकेलता है, और dइसके निरंतर अंतरों की गणना करता है, जो देता है [32 -32 10]( ए-32 बेकार है)।

mएक तार्किक पंक्ति सरणी देता है जो यह दर्शाता है कि कौन से अक्षर 32या 10(या हैं-32 ) हैं।

1 के बाद eएक पंक्ति के रूप में फेरबदल के । यह यहाँ नहीं है।

5इसके बाद फिर से Mपुश 1(अंतिम इनपुट सबसे हाल ही में कई-इनपुट फ़ंक्शन के लिए, जो हैe )।

dकी लगातार भिन्न गणना करता है 1, और इसलिए [](खाली सरणी) देता है ।

wस्वैप, और अंत में व्हाट्सएप पात्रों को (असाइन करता []है, अर्थात उन्हें हटा देता है।


1
तुम झूठ बोल रही हो! कोई रास्ता नहीं यह काम करता है! (+1) ...
स्टेवि ग्रिफिन


2
बकवास ... मैंने ध्यान नहीं दिया कि यह पहले से ही क्रैक था ... ठीक है, डबल क्रैक किया गया
स्टीवी ग्रिफिन

आप दोनों को अच्छा काम! :-) बिलकुल नहीं मेरा इरादा समाधान है, लेकिन यह पूरी तरह से काम करता है
लुइस मेंडू

4

RProgN , 15 बाइट्स फटा!

''`R""`R

आप यहाँ कोड के साथ खिलौना कर सकते हैं । एक अपेक्षाकृत सरल समाधान, उम्मीद है कि RProgN स्ट्रिंग्स को कैसे संभालती है, इस कष्टप्रद प्रकृति को यह अनियंत्रित छोड़ देगा।

मूल कार्यक्रम

' ' ` R
"
" ` R

explination

सबसे पहले, इनपुट को स्पष्ट रूप से स्टैक पर धकेल दिया जाता है। ढेर:<INPUT>

फिर, हम स्टैक के लिए एक स्थान को पुश करने के लिए '' का उपयोग करते हैं। ढेर:<INPUT> " "

`वास्तव में` (शब्द) द्वारा दर्शाए गए एक स्ट्रिंग को धकेलने की कोशिश करता है, लेकिन क्योंकि इसके बाद व्हॉट्सएप है, यह सिर्फ एक खाली स्ट्रिंग को धक्का देता है। ढेर:<INPUT> " " ""

यहां R रिप्लेस कमांड के लिए चीनी है। ढेर:<INPUTWITHOUTSPACES>

इसके बाद, "NEWLINE" एक स्ट्रिंग को धक्का देता है जिसमें एक नई रेखा होती है, जो कि अच्छा है क्योंकि RProgN एस्केप का उपयोग नहीं करता है, यह सीधे आपको एक स्ट्रिंग को धक्का देने देता है। ढेर<INPUTWOSPACES> "\n"

फिर, हम `ट्रिक दोबारा, और रिप्लेस का उपयोग करते हैं, जो हमारा आउटपुट देता है।


क्या यह फ़ायरफ़ॉक्स में काम करने वाला है?
कॉनर ओ'ब्रायन

मैं इसे फ़ायरफ़ॉक्स में चला रहा हूं, क्या कोई मुद्दा है? क्या आपको स्क्रीनशॉट मिल सकता है?
अताको


खैर वो तेज था। मैं लगभग आधे घंटे तक रहा!
ATaco

4

रूबी, 86 बाइट्स + 1 ध्वज = 87 ( डोम हेस्टिंग्स द्वारा फटा )

कमांड-लाइन ध्वज की आवश्यकता है -p

eval"(T$}{(!//;:678?32.&&)".gsub(/|(.)/){$1&&$&.ord.^($'.count('')).chr}

कोड वास्तव में इस रूप में मान्य है, यह सिर्फ एक नो-ऑप है।


यह बहुत बढ़िया है, मुझे यह पसंद है! तो मतलब ...
डोम हेस्टिंग्स


4

बीम , 72 बाइट्स, सुरक्षित!

अब एक 2d भाषा के लिए। TIO Nexus पर खेला जा सकता है ।

s'''>`+++)+Ss`n\
 n`sS+(+++`<``/
 >rgn\
 ^ @<(\  
     H         <
 ^    /

लोगों को आज़माने और मूर्ख बनाने के लिए बिना किसी बहुत सीधे आगे के कार्यक्रम।

s'''>`+++)+Ss`n\ # Sets the memory slot 0 to 0, 10 to 10 and 32 to 32. n will redirect down
 n`sS+(+++`<``/  # since memory != store. \ is a red herring and not hit.
 >rgn\           # read in from input and set store to memory value. For all characters
 ^ @<(\          # other than space, LF and end of input this will be different and n will 
     H         < # redirect down then through to the print and back to read. Space, LF and  
 ^    /          # end of input get directed to the ( which tests for 0. This will redirect 
                 # space and LF to path back to read, otherwise it will skip over and halt

1
मुझे लगता है कि मैं दुभाषिया को नोड में ले
जाऊंगा

1
मैंने दुभाषिए का एक नोड क्लोन बनाया है , और डेनिस ने अब इसे TIO में जोड़ दिया है !
ETHproductions

4

भूलभुलैया , 127 बाइट्स

);""{"".@"-;,""""":"##"*"(:"+":}-;{";;"*#{:;"#""+("-;"";;"})"";""""""""

उम्मीद है कि मैंने यह सही किया :) यह मेरी पहली पुलिस और लुटेरों की एंट्री है।

मूल कोड

 ) ;""{"".@
"-;, "" ""
"  :
" ##
" *
" (:
"  +
"  :}-;{
"    ; ;
" *#{: ;
" #    "
" +("-;"
"    ; ;
"    })"
"      ;
""""""""

आपका उत्तर अब सुरक्षित है, आप अपना मूल कोड और स्पष्टीकरण जोड़ सकते हैं।
लकोनी

4

एक बड़े इंटेगर आयात के लिए जावा, 3241 + 28 बाइट्स

यह प्रविष्टि केवल विशुद्ध रूप से गुप्त रूप से सुरक्षित प्रविष्टि की संभावना को साबित करने के लिए है। मेरा मानना ​​है कि यह नियमों के भीतर है, लेकिन अगर यह भावना के खिलाफ है, तो कृपया मुझे बताएं और मैं निष्पक्षता से हट जाऊंगा। मैं इस "असुरक्षित" को अनिश्चित काल तक छोड़ दूंगा जब तक कि एक दरार नहीं मिलती (और यदि)। यह एक राक्षसी है और निश्चित रूप से इसे और अधिक अनुकूलित किया जा सकता है, लेकिन यहां यह है।

interfacer{staticvoidmain(String[]A){Strings=",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,",q=",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,",a="",b="";for(Stringt:s.split(",")){a+=t.length();}for(Stringt:q.split(",")){b+=t.length();}if((newBigInteger(a).multiply(newBigInteger(b)).toString()).equals("3649760552772806991406184564114682549877113954361462782925976763675666255653486225665808494957477900238166874367635068317805381406282572366371821972593595701388544127398102379288357379612333197280663769935384647844344358594407966485992727383589962048236726744715096711312156760311643104858212670342667229690568585229658813910569607411855770280546861422837629553847973043531578541545436967345783407835402474562087790816775240815912495599135241317")){System.out.println(A[0].replaceAll("","").replaceAll("\n",""));}}}

लुटेरों के लिए निष्पक्षता से बाहर, यहाँ सभी "स्पष्ट" व्हाट्सएप के साथ है।

interface r {

    static void main(String[] A) {
        String s = ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,", q = ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,", a = "", b = "";
        for (String t : s.split(",")) {
            a += t.length();
        }
        for (String t : q.split(",")) {
            b += t.length();
        }
        if ((new BigInteger(a).multiply(new BigInteger(b)).toString()).equals("3649760552772806991406184564114682549877113954361462782925976763675666255653486225665808494957477900238166874367635068317805381406282572366371821972593595701388544127398102379288357379612333197280663769935384647844344358594407966485992727383589962048236726744715096711312156760311643104858212670342667229690568585229658813910569607411855770280546861422837629553847973043531578541545436967345783407835402474562087790816775240815912495599135241317")) {
            System.out.println(A[0].replaceAll("", "").replaceAll("\n", ""));
        }
    }
}

सौभाग्य, मैं इस फटा हुआ देखना पसंद करूंगा। वास्तव में मैं भी इस पर एक असीमित इनाम संस्थान होगा। यदि किसी भी बिंदु पर आप इसे क्रैक करते हैं, तो आपको स्टैक एक्सचेंज पर 500 प्रतिनिधि अनंत प्रशंसा से सम्मानित किया जाएगा (साथ ही साथ एक अद्भुत गणितीय पेपर)।



2
आपका समाधान और मेरा संभवतः अनियंत्रित युगों में चलेगा।
यहोशू

1
नीचे की ओर, क्या इस सबमिशन के बारे में कुछ नाजायज है?
रोहन झुनझुनवाला 13

1
इसके लिए वास्तव में एक तुच्छ समाधान है (जिसमें RSA-440 नंबर के बराबर फैक्टरिंग शामिल नहीं है), दुर्भाग्य से इसके लिए अतिरिक्त ~ 10,000 बाइट्स की आवश्यकता होती है ...
SLuck49

1
@ SLuck49 क्या आप मुझे यह टिप्पणी कर सकते हैं?
रोहन झुनझुनवाला

1
@ SLuck49 वाह! मुझे बस एहसास हुआ कि तुम क्या देख रहे थे! मैंने लगभग 500 प्रतिष्ठा खो दी।
रोहन झुनझुनवाला

3

रिले द्वारा क्रैक किए गए सी, 140 बाइट्स

एक आसान के साथ शुरू करते हैं।

#include<stdio.h>intmain(){inta=getchar();while(a!=EOF){//\a=getchar();if(a!=10&&a!=32)//\\putchar(a^10^32);putchar(a);a=getchar();}}

(मुझे आशा है कि मैं यह सही कर रहा हूँ।)


1
फटा। नहीं समाधान के रूप में मैं 1 बाइट कम है।
रिले

@ रिले अंत में एक अतिरिक्त न्यूलाइन जोड़ें और आप ठीक हो जाएंगे;)
अल्फी गुडाक्रे


2

V , 37 बाइट्स nmjcman101 द्वारा क्रैक किया गया

OVrS200@"kIi|D@"Aüî|D@"

चूँकि इसमें unprintables हैं, यहाँ पठनीय संस्करण है:

O<esc>Vr<C-a>S200<esc>@"kIi<C-v><C-v><esc>|D@"<esc>Aüî<esc>|D@"

या यदि आप चाहें, तो एक हेक्सडंप:

00000000: 4f1b 5672 0153 3230 301b 4022 6b49 6916  O.Vr.S200.@"kIi.
00000010: 161b 7c44 4022 1b41 fcee 1b7c 4440 22    ..|D@".A...|D@"

फटा कि यह एक बहुत ही शांत पहेली थी
nmjcman101


2

जावास्क्रिप्ट ईएस 6, 380 बाइट्स, सुरक्षित

यह उस तरह की प्रविष्टि है जिसे मैं शुरू में रिलीज करने की योजना बना रहा था। यह बहुत बड़ा है और इसमें जीतने का कोई मौका नहीं है, लेकिन मुझे लगता है कि इसे क्रिप्टोग्राफिक रूप से इतना मजबूत होना चाहिए कि 7 दिन झेलना पड़े। अब, मैं गलत साबित हो सकता हूँ!

जोड़ने के लिए व्हाट्सएप के 67 बाइट्स।

s=>{for(k=`|||`.split`|`.map(s=>s.replace(/\s/g,c=>(k-=(c<'')+1,n=n<<2|k&3),k=n=0)&&n),x=10106050295,y=-4955405499,i=32,d=2654435769,t=d*i;i--;y-=(x<<4^x>>>5)+x^t+k[t>>>11&3],t-=d,x-=(y<<4^y>>>5)+y^t+k[t&3]);returns[atob(([x,y].map(n=>String.fromCharCode(n&255,n>>8&255,n>>16&255,n>>24)).join``))](/[\n]/).join``}

उपाय

यह विस्तारित टिनी एन्क्रिप्शन एल्गोरिथ्म का एक कार्यान्वयन है । 64-बिट व्हाट्सएप-एन्कोडेड कुंजी निम्नलिखित 128-बिट कुंजी तक फैल जाती है:

K = [0xd224de37, 0x89e34e79, 0xe34e7748, 0x939e2789]

यहाँ छवि विवरण दर्ज करें

स्रोत: विकिपीडिया

एक बार डिक्रिप्ट और एएससीआईआई में परिवर्तित हो जाने के बाद, 64-बिट ब्लॉक के [x, y]रूप में पढ़ता है c3BsaXQ=, जो कि बेस 64 एनकोडेड प्रतिनिधित्व है split


1
मैंने इस सोच को मजबूर करना शुरू कर दिया कि शायद मैं भाग्यशाली हो जाऊं और आपने 4 प्रमुख मूल्यों में से प्रत्येक की लंबाई समान (8 बिट) कर दी है। सिवाय इसके कि यह 16 बिट्स होगा ... वूप्स। जानवर बल नहीं होने जा रहा है, दूसरे दृष्टिकोण के लिए समय।
SLuck49

2

Vitsy , 73 बाइट्स, सुरक्षित

यह सर्वथा दुष्ट है।

5mW3m7m7m2mD&EPamX}<m15mEnl9mZD\[4m]^P-cm(D_2-3*bmD1-dmrnu-'

सौभाग्य! जोड़ने के लिए व्हॉट्सएप के 13 आइटम।

मूल कोड:

5m
W3m7m
7m
2m
D&EPamX}
<m1
5mEn
l9mZ
D
\[4m]
^P-cm(D
_2-3*
bmD1-dmrnu-
'

इसे ऑनलाइन आज़माएं!

यह लगभग सरल हो जाता है:

<m1
W2\[2m]Z
l\[D&EP^P-_2-3*D1-rnu-(DX}]

कृपया संपादन इतिहास को न देखें, क्योंकि मेरे पास अपने कोड में एक बग शेष था।
Addison Crump

तुम बुराई नहीं जानते। मैं बुराई जानता हूं।
जोशुआ

यह मेरे लिए सिर्फ 0300 है, इसलिए मैं सुबह में एक स्पष्टीकरण जोड़ दूंगा।
Addison Crump

1

सी #, 159 बाइट्स, दूध द्वारा फटा

usingSystem.Linq;s=>string.Join("",string.Join("",s.Split(@"".Replace(newstring((char)0x0D,1),"").ToCharArray())).Select(c=>c+""!=""?c+"":"").ToArray());

153 व्हाट्सएप के केवल 6 बाइट्स को खोजने के लिए ढह गया, बहुत मुश्किल नहीं होना चाहिए ...



1

रेटिक्यूलर, 43 बाइट्स, फटा

ISBqv<>>$$4jE:d/v$v?c+91d/v?E;!?l$/o$

टीआईओ पर संस्करण पुराना है, लेकिन आप खुद को जीथब से कॉपी प्राप्त कर सकते हैं ।


नेक्सस पर संस्करण पहले से ही अद्यतित था। मैं v1 पर भी खींच लिया।
डेनिस

बस जाँच, क्या यह इनपुट दो लगातार लाइनफ़ीड शामिल है तो काम करता है?
मार्टिन एंडर

@MartinEnder इसे करना चाहिए। यह इस बात पर निर्भर करता है कि इनपुट पाइप है या नहीं। जब पाइप किया जाता है तो इसे स्टड के सभी को पढ़ना चाहिए।
कॉनर ओ'ब्रायन

@ डेनिस धन्यवाद! मेरा मतलब आपसे चैट में पूछने का था।
कॉनर ओ'ब्रायन


1

वुल्फराम, 132

शायद अधिक है कि एक समाधान (संकेत: Mersenne)

StringReplace[#,""->"",Limit[x/(x-1),x->Boole[PrimeQ[
212821282128228281282128228821282128212821282-1]]]]&

उपाय

StringReplace[#," "->"",Limit[x/(x-1),x->Boole[PrimeQ[
2 128 2 128 2 128 2 2 8 2 8 128 2 128 2 2 8 8 2 128 2 128 2 128 2 128 2-1]]]]&

> आपका सबमिशन आपके
व्हाट्सएप से

@KritiiLithos इसे हटा दिया गया है
swish

दूसरी पंक्ति से पहले रिक्त स्थान और पहली और दूसरी पंक्ति के बीच की नई रेखा के बारे में क्या?
कृति लीथोस

ठीक है, तुम सही हो, यह सिर्फ पठनीयता के लिए है ...
बेंत की मार

मुझे लगता है कि आप अब समाधान पोस्ट कर सकते हैं।
कैलक्यूलेटरफैनलाइन

1

व्हॉट्सएप , 81 74 बाइट्स

																					

मानव पठनीय संस्करण:

ttttttttttttttttttttt (21 tab characters)

मुझे पता है कि यह एक पुरानी चुनौती है लेकिन उम्मीद है कि कोई इस पर नकेल कसने के लिए तैयार है। मैंने बायटेकाउंट के लिए अनुकूलन करने का प्रयास किया, लेकिन संभव है कि एक ही संख्या में टैब वर्णों के साथ कुछ छोटा किया जाए।


0

tcc, 850 बाइट्स

बहुत लंबी लाइन को टालने के लिए मैंने इसे tr -d '\ n' से गुजारा गुना -b -w 60।

#!/usr/bin/tcc-run#include<stdio.h>typedefunsignedcharu;um[]
={104,105,16,152,94,131,43,42,112,214,53,207,116,170,185,210
};intmain(){uS[256];uk[256];ui,j,t;intc,n=0;FILE*f;f=fopen(_
_FILE__,"r");/*cannotfail*/while(-1!=(c=fgetc(f)))if(c==''||
c==10)k[++n]=c;fclose(f);i=0;do{S[i]=i;}while(++i!=0);j=0;i=
0;do{j=j+S[i]+k[i%n];t=S[i];S[i]=S[j];S[j]=t;}while(++i!=0);
i=0;do{if(S[i]!=m[i])j=1;}while(++i<sizeof(m));if(j==1){i=0;
do{printf("%d,",(int)S[i]);}while(++i<sizeof(m));printf("\n"
);}else{while(-1!=(c=fgetc(stdin)))if(c!=''&&c!=10)fputc(c,s
tdout);}returnj;}

दुभाषिया के लिए लिंक?
Addison Crump

@VoteToClose: apt-get install tcc ने मेरे लिए यह किया।
यहोशू

0

एसआईओएस , 159 बाइट्स सुरक्षित!

loadLinedef:lblgetagetzzzz/za=256:aX=getax=Xy=Xz=xx-10x|ifxbGOTOx:by-32y|ifycGOTOx:cprintCharX:xa+1z+1x=getaifxa:b

काफी तुच्छ होना चाहिए। यह मेरी पहली पुलिस और लुटेरों की एंट्री है।

किसी ने भी इस पर हमला नहीं किया, शायद मेरी अपनी भाषा के गूढ़ स्वभाव के कारण। द्वारा स्लाइड करने के लिए एक स्लीज़ी तरीके की तरह लगता है, लेकिन यह वास्तव में मायने नहीं रखता क्योंकि छोटे सुरक्षित हैं।

loadLine
def : lbl geta get z zz
z/z
a=256
:a
X=get a
x=X
y=X
z=x
x-10
x |
if x b
GOTO x
:b
y-32
y|
if y c
GOTO x
:c
printChar X
:x
a+1
z+ 1
x=get  a
if x a
:b

बेझिझक इसे ऑनलाइन आज़माएं

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.