“ สวัสดีโลก!” (ด้ายของตำรวจ)


16

นี่คือด้ายของตำรวจ ด้ายโจรเป็นที่นี่

ความท้าทายของคุณคือการเขียนโปรแกรมหรือฟังก์ชั่นที่มีอินพุตที่แน่นอนพิมพ์สตริงที่แน่นอนHello, World!และขึ้นบรรทัดใหม่ การใช้ตัวพิมพ์ใหญ่เว้นวรรคและเครื่องหมายวรรคตอนต้องเป็นตัวพิมพ์ใหญ่

อินพุตอาจถูกใช้ผ่านอินพุตมาตรฐานไฟล์หรืออาร์กิวเมนต์บรรทัดรับคำสั่ง / ฟังก์ชัน เอาต์พุตอาจถูกกำหนดผ่านค่าส่งคืนการเขียนไปยังไฟล์หรือเอาต์พุตมาตรฐาน

โปรแกรมของคุณจะต้องพิมพ์Hello, World!อย่างน้อยหนึ่งอินพุต เมื่อโปรแกรมของคุณได้รับอินพุตผิด (เช่นอินพุตที่ไม่ได้ทำการพิมพ์Hello, World! ) มันสามารถทำอะไรก็ได้ที่คุณต้องการ - ขัดข้องพิมพ์เรื่องไร้สาระสุ่มโทร Chuck Norris เป็นต้น

คุณไม่สามารถใช้อัลกอริทึมการแปลงแป้นพิมพ์หรือวิธีการที่คล้ายกันในการปิดบังอินพุตที่ต้องการ

สิ่งที่ส่งมานั้นต้องการให้สามารถรันได้ & ถอดรหัสได้ TIO อนุญาตให้ส่งไฟล์ที่ไม่สามารถเรียกใช้หรือถอดรหัสได้ใน TIO แต่โปรดรวมคำแนะนำในการดาวน์โหลด / เรียกใช้

หลังจากผ่านไปหนึ่งสัปดาห์ความท้าทายนี้จะถูกปิดเพื่อส่งให้ตำรวจในอนาคต ผู้ชนะคือรหัสที่สั้นที่สุดที่ไม่ได้ทำการถอดหลังจากหนึ่งสัปดาห์ของการโพสต์ ("เป็น" เป็นรหัสไม่ใช่ความท้าทายนี้) ผู้ชนะจะได้รับการยอมรับหลังจากสองสัปดาห์

หลังจากผ่านไปหนึ่งสัปดาห์ตั้งแต่โพสต์โปรดทำเครื่องหมายคำตอบของคุณว่าปลอดภัยและแสดงอินพุต (ใน> ! spoiler quote) หากโจรปล้นการส่งของคุณ (ก่อนสัปดาห์สิ้นสุด) โปรดทำเครื่องหมายว่าแคร็กแล้วแสดงการหยุดพัก (ใน> ! spoiler quote )

กำลังมองหาการส่งที่ไม่ได้ติดตาม?

fetch("https://api.stackexchange.com/2.2/questions/137742/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>


คล้ายกันมากไม่หลงกลแม้ว่า
โพสต์ Rock Garf Hunter

13
ดังที่ฉันพูดในกล่องทรายฉันรู้สึกว่านี่เป็นคำถามซ้ำซ้อนเนื่องจากคำถามใด ๆ ที่สามารถโพสต์ได้ที่นี่แทน แต่ด้วยรหัสสำหรับและวนซ้ำไม่สิ้นสุดแทนที่ด้วยรหัสเพื่อพิมพ์สวัสดีโลก ฉันยังไม่ลงคะแนนเพราะฉันใช้ค้อน แต่ฉันค่อนข้างมั่นใจว่านี่เป็นคนหลอกลวง
FryAmTheEggman

5
เห็นได้ชัดว่าsha3ตกอยู่ในหมวดหมู่นั้น แต่อย่างอื่นคุณจะวาดเส้นที่ไหน ฉันหมายความว่าmod 1e3นี่เป็นฟังก์ชั่นแฮชด้วยและฉันก็ยังไปไกลและให้เหตุผลว่าการส่งจำนวนมากกำลังเป็นฟังก์ชันแฮชเนื่องจากความท้าทายนี้โดยทั่วไปแล้วจะขอเช่นนั้น
ข้อบกพร่อง

1
จากคำตอบที่ฉันเห็นในวันที่ผ่านมาไม่มีอะไรปรากฏว่าทำให้ฉันเชื่อว่านี่ไม่ใช่สิ่งที่ซ้ำกัน ฉันจะปิดการท้าทายตำรวจในตอนนี้และถ้าชุมชนไม่เห็นด้วยก็สามารถเปิดใหม่ได้และหากชุมชนเห็นด้วยพวกเขาก็สามารถปิดเธรดโจรได้เช่นกัน
FryAmTheEggman

1
@Dopapp นี้ได้รับการกล่าวถึงแล้วที่นี่ (ลบความคิดเห็นบางส่วน) และในการแชท คำตอบไม่สามารถคัดลอกหรือย้ายได้ง่ายมากจากการท้าทายไปยังสิ่งนี้ดังนั้นจึงไม่ซ้ำกัน
MD XF

คำตอบ:


3

Python 3, 191 186 bytes (ปลอดภัย!)

เช่นเดียวกับคำตอบก่อนหน้าของฉัน แต่ไม่มีคำสั่ง noob eval ดังนั้นใครบางคนต้องแก้ปัญหาที่ฉันสร้างขึ้น

import sys
from numpy import *
e=enumerate
c='Hello, World!'
print(''.join([c[int(sum([c*cos(n*i)for i,c in e(fromiter(sys.argv[1:],float))])+.01)]for n in[2*i+ord(n)for i,n in e(c)]]))

ตอนนี้รันมันด้วยพารามิเตอร์ที่ถูกต้องเช่น python3 hw.py 1 2 3


แก้ไข : เวอร์ชันก่อนหน้าไม่มีเครื่องหมายจุลภาคใน "Hello, World!" และฉันก็ตระหนักว่ามีตัวเลขที่ไม่จำเป็นซึ่งหายไป


แก้ไข 2 : เพื่อความสนุกนี่เป็นเวอร์ชั่น Pyth เกือบทั้งหมด (47 ไบต์) ของรหัสเดียวกัน:

KEJ"Hello, World!"jkm@J.Rs.e*b.t*dk1K0.e+*2kCbJ

อินพุตถูกนำมาจากstdinและอยู่ในรูปแบบของรายการอาร์กิวเมนต์เช่น[1,2,3]

ฉันไม่เห็นจุดในการโพสต์คำตอบแยกต่างหากเพราะถ้าคุณถอดรหัสเวอร์ชั่น Pthyon3 คุณก็จะแตกเวอร์ชั่น Pyth ด้วยซ้ำโดยไม่ทราบว่า Pyth


ตอบ:

python3 hw.py 10.72800138 13.23008796 19.30176276 16.13233012 18.10716041 0.98306644 8.18257475 19.20292132 10.99316856 -2.15745591 6.01351144 5.45443094 10.41260889

คำอธิบายของรหัส:

''.join()สร้างโลก hello "Hello, World!"ออกสตริงของอาร์เรย์ของตัวอักษรจากสตริง ปริศนานี้ได้รับการแก้ไขเมื่อสิ่งเหล่านั้นบ่ง[0,1,2,3,4,5,6,7,8,9,10,11,12]บอก แต่ละดัชนีจะถูกคำนวณจากอินพุตและค่าคงที่ที่กำหนดในบรรทัดคำสั่ง [2*i+ord(c) for i,c in enumerate('Hello, World!')]ปัจจัยการผลิตเป็นชุดรหัสยาก: funtion ที่เกี่ยวข้องการป้อนข้อมูลค่าคงที่และการส่งออก (indicies) sum([c*cos(x*i) for i,c in enumerate(CONSTANTS)])คือ: นี่เป็นปัญหาการสร้างแบบจำลองแบบคลาสสิกที่คุณพยายามปรับข้อมูลให้เหมาะกับแบบจำลองของคุณ

เมื่อมาถึงวิธีการแก้ปัญหาในหลาม:

from scipy import optimize
x = [2*i+ord(c) for i,c in eumerate('Hello, World!')]
y = [0,1,2,3,4,5,6,7,8,9,10,11,12].
# make your function: 13 terms means we can achieve 13 exact outputs
def f(x,a,b,c,d,e,f,g,h,i,j,k,l,m):
    return sum([c*cos(x*i) for i,c in enumerate([a,b,c,d,e,f,g,h,i,j,k,l,m])])
# curve fit
ans,_ = optimize.curve_fit(f,x,y)
# check answer
[round(f(a,*ans),0) for a in x] # should be 0-12


2
ในกรณีที่คุณไม่ทราบliteral_eval()ในastโมดูลสามารถใช้ในการประเมินการแสดงออกอย่างปลอดภัยเพื่อให้print(ปัญหาการฉีดรหัสจะไม่ทำงาน มันอาจจะไม่เกี่ยวข้องที่นี่ แต่ฉันแค่คิดว่าฉันจะพูดถึงมัน
แยกผลไม้

2
คุณแน่ใจว่านี้สามารถพิมพ์Hello, World!? ไม่ได้แตก แต่ดูเหมือนว่ามันหายไปจุลภาค (เพียง 12 ซ้ำในการเข้าร่วมวง)
ยูเรียล

โอ้คุณพูดถูกแล้วไม่มีเครื่องหมายจุลภาค ฉันจะแก้ไขให้ถูกต้องแล้ว
rexroni

@ Challenger5 ขอบคุณฉันไม่รู้เหมือนกัน
rexroni

12

TeX - 38 ไบต์ แตกแล้ว (ish)

นี่เป็นสิ่งที่คุ้มค่าเพราะฉันไม่สามารถจินตนาการได้ว่าทุกคนในไซต์เกี่ยวกับการเขียนโค้ดสั้น ๆ น่าจะรู้จัก TeX:

\read16to\x\message{Hello, World!}\bye

หากต้องการเรียกใช้คุณควรถือ TeX บางรูปแบบที่อนุญาตโหมดโต้ตอบ บันทึกสิ่งนี้ลงในไฟล์และเรียกใช้ TeX (หรือ pdfTeX, XeTeX เป็นต้น)

แก้ไข: ฉันกำลังพิจารณากึ่งรอยร้าวนี้ โซลูชันที่ต้องการใช้อินพุตจาก stdin แต่อินพุต TeXnically จากวิธีที่โปรแกรมถูกเรียกใช้นั้นถูกต้อง ฉันจะเพิ่มคำตอบ TeX ที่เคร่งเครียดมากขึ้นถ้ามีคนได้รับวิธีที่ต้องการ

นี่คือทางออกที่ตั้งใจไว้:

^ C Ia - ปุ่มแรกคือ control-c ซึ่งทำให้เกิดข้อผิดพลาด จากนั้นคุณกด I (ตัวใหญ่ i) เพื่อป้อนคำสั่ง จากนั้นคุณพิมพ์ (หรือสิ่งอื่นใดที่จะเรียงพิมพ์) โดยปกติข้อความที่พิมพ์ไปยัง stdout จะตามด้วยช่องว่างแล้วตามด้วย ')' เมื่อคุณพิมพ์บางสิ่งบางอย่างมันทำให้ข้อมูลแบบอักษรที่จะส่งออกหลังจากข้อความ นั่นหมายความว่ามีการขึ้นบรรทัดใหม่และ ')' จะถูกย้ายในภายหลัง

นั่นอาจเป็นการใช้เล่ห์เหลี่ยม แต่ก็ควรจะอยู่ในกฎของเกม


ยินดีต้อนรับสู่ PPCG คำตอบแรกที่ดี
ЕвгенийНовиков

มันจะไม่พอใช้tex \ Hello, world!\bye(23 ไบต์)
เวอร์เนอร์

@ Werner ที่จะอนุญาตให้ผู้ใช้ป้อนข้อมูลหรือไม่
ชายทอง

จริง ๆ แล้วนี่หมายความว่าจะแตกหรือไม่ : o
Felix Palmen

3
texnicallyโอ้เอ้ย.
MD XF

7

> <> , 538 ไบต์, ถูกแคร็กโดย rexroni

v
\">/v>v\v</>"
/!?lp%*2di%*2di
a
v   "        "       "
   "l"      "o"  /  "e"
v   "        "     " "
      "   /       "l"/
v    "!"           "
 //   " " "      \
v     \"d"o"   " "    "
      " " "   "o"r"  "!"
v"   "H"       " "    "
"l"   ""
""    "r" "         "
    \  " "l"       "d"  "
v   "     "      "  "  "H"
   "e"         /","     "
v " " "     "  " "
 "e" "W"  /"d""l"
v " " "     "  "      "
   "H"               "!"
v   "                 "
                        v
>>"Hello world?"       >o<
                        ^

ลองมันออนไลน์หรือคุณอาจต้องการที่จะใช้สนามเด็กเล่นปลา

สามบรรทัดแรกอ่านในสตริงจาก STDIN และใช้อักขระรหัสที่ 26 เป็นตัวประสานเพื่อใส่อักขระ " >/v>v\v</>" ลงในเขาวงกตด้านล่าง ทางออกที่ตั้งใจคือสตริง 20 ตัวอักษรที่ทำจากตัวอักษร A – Z เท่านั้น (แม้ว่าคุณจะได้รับอนุญาตให้ใช้ทุกอย่างที่คุณต้องการ)

วิธีการแก้:

อินพุตที่ตั้งใจคือOCEANICWHITETIPSHARK(มันคือปลา!) เส้นทางผ่านเขาวงกตดูเหมือนว่า:

v
\">/v>v\v</>"
/!?lp%*2di%*2di
a                |  |
v   "        "   |  |"
| v"l"______"o"__/  "e"
v | "        "     " "
| |   "   /       "l"/
v |  "!"           "|
|//   " " "    v_\  |
v|    \"d"o"   " "  | "
||    " " "   "o"r" |"!"
v"   "H"       " "  | "
"l"___""_______ _/__/_____
""    "r" "    | |  "
|>__\  " "l"   | | "d"  "
v   "     "    | "  "  "H"
|  "e"v________/"," |   "
v " " "     "  " "  |
|"e"|"W"  /"d""l"|  |
v " " "     "  " |  | "
<  "H">__________ __\"!"__
v   "            |  | "
    >____________ __ ___v
>>"Hello world?" |  |  >o<
                 |  |   ^


แตก! พาฉันไปตลอดกาล
rexroni

3
เฮ้ฉันสงสัยว่าคำตอบอาจเป็นคำ แต่ฉันไม่ได้พยายามที่จะถอดรหัสมัน ฉันยืนประทับใจยิ่งขึ้น
rexroni

6

อ็อกเทฟ, 59 ไบต์, แคร็ก

งานนี้ใน Octave 4.2.0 ฉันไม่สามารถรับประกันความเข้ากันได้กับทุกรุ่น

i=input('');printf('%c',i*~all(isequal(i,'Hello, World!')))

หมายเหตุ: นี่จะไม่พิมพ์ช่องว่างต่อท้ายหรือการขึ้นบรรทัดใหม่ นี่คือสิ่งที่ดูเหมือนว่า:

enter image description here

โดยพื้นฐานแล้วมันพูดว่า: "พิมพ์สตริงป้อนข้อมูลเว้นแต่ว่าอินพุตคือ 'Hello, World!' ในกรณีนี้ไม่ควรพิมพ์อะไรเลย (หรืออักขระที่เป็นโมฆะ)


ฉันไม่แน่ใจว่า%cหมายถึงสตริงหรืออักขระ ... บางทีคุณอาจซ่อนอะไร อีกทั้งยัง*~ทำให้ฉันสงสัยด้วย ...
Erik the Outgolfer

ฉันไม่แน่ใจ แต่แตก ?
2560

@BruceForte พิมพ์ไบต์ว่างในตอนท้ายของเอาท์พุทฉันไม่แน่ใจว่ามันถูกต้อง ... ลิงค์
MD XF

1
I'm pretty sure the intended solution is this kind of thing.
Jonathan Allan

1
@BruceForte, no. there was no \n. I thought the question text said "optional trailing newline".
Stewie Griffin


5

MATL, 6 bytes. Cracked

tsZp?x

Try it online!


Cracked, but if this isn't the intended solution, it feels a bit like cheating.
Dennis

@Dennis The intended solution was ['Hello,' 1 'World!']. Why cheating? :-( The doc/help for D says Most input characters below 32 are replaced by space
Luis Mendo

I meant cheating on my part, turning an LF newline into a CR+LF newline.
Dennis

@Dennis Ah, I see. Well, I think it's perfectly valid too
Luis Mendo

5

Explode, 23 bytes, Cracked

@_?&4_-j>5&f^~c>&6\|4>7

More coming, this is just the beginning >:)

Try it online!

Explorer Explanation

There are four explorers in this program. I'm not entirely sure that wait (>) is working correctly.

@_?

Read user input (?), write and extend the tape (@) down (_).

&4_-j>5

For 4 ticks (4), modify the tape (&) downwards (_), jumping by 5 (5), by subtracting (-) 19 (j).

&f^~c>

For 16 ticks (f), modify the tape (&) upwards (^) in a wave (~), alternating no affect, +13, no affect, and -13 (c).

&6\|4>7

For 6 ticks (6), modify the tape (&) in both directions (|), decreasing (\) by 4 (4) each time, and jumping by 7 (7). Decreasing means that it subtracts 4 the first time, 8 the second time, etc.


3
Cracked but feel free to give an explanation of the goings on :)
Jonathan Allan

@JonathanAllan explanation added, sorry I took so long
Stephen

5

JavaScript (ES6), 173 169 163 150 151 148 143 bytes (Cracked)

Let's have something totally different... and totally evil.

const e=eval,p=''.split,c=''.slice,v=[].every,f=s=>(t=c.call(s),typeof s=='string'&&t.length<81&&v.call(p.call(t,`\n`),l=>l.length<3)&&e(t)(t))

Usage: f(something) // returns 'Hello, World!'

Try it online!




Nice! That's a real crack.
Voile

This was really tough to crack. Good job!
DanTheMan

It's directly taken from one of the puzzles I've created on elsewhere :) (I'll let people figure out where I posted the original puzzle.)
Voile

4

C# (.NET Core), 130 152 bytes, CRACKED

+22 bytes, I forgot about trailing newline... Program works the same as before, the newline is added to any output.

a=>a.Distinct().Select((x,y)=>a.Reverse().Skip(y).First()*x%255).Take(a.First()-33).Concat(new int[]{10}).Select(x=>(char)x).ToArray()

Try it online!

Byte count also includes

using System.Linq;

For a start I went for something not too crazy. It can has multiple answers.

The "official" crack:

. !$0%>5&8'#?)S*TuE[MRX`+9



4

tcc, 89 bytes, cracked by Dennis

#!/usr/bin/tcc -run
#include <stdio.h>

int main()
{
    puts("\n");
}
#include "/dev/stdin"

This is particularly evil due to tcc's dynamic resolution. Lots of functions are predeclared and trying to overwrite them simply doesn't work.


Could you create a working TIO link for people to play with? (this is no doubt incomplete - maybe it needs compiler flags or something, I have no idea) TBH I don't even know how this is meant to take input...?
Jonathan Allan

Tio's tcc is not going to work. It doesn't get that this must be used as tcc -run rather than a separate compile and link phase.
Joshua

Maybe it's runnable via a shell through there then, bash is available (I know very little regarding either tcc or bash though). Otherwise I think you should give some detailed instructions to get people going (unless my personal lack of knowledge is the issue here - as I said I don't even know how your code gets any input, all I see is a puts and I thought that outputs.)
Jonathan Allan

Almost have a crack but I'm on mobile and mprotect is being a butt.
MD XF



4

brainfuck, 7 bytes cracked

,+[.,+]

Try it online!

Good luck. (doesn't work with every BF interpreter


Does your input work with any BF interpreter, including ones with different tape lengths? Does your input work locally, and not just on TIO?
Stephen

@StepHen any length of type afaik
Christopher


1
Does your intended solution work on TIO?
totallyhuman

@totallyhuman thanks, edited the comment so it looks pro. I don't know how to put non-printable input on TIO. I passed input on stdin from a C program with a single printf statement.
rexroni

3

JavaScript (ES6), 102 bytes (Cracked)

The previous version has a massive cheese. Let's try this again...

f=s=>{let r='',i=0;while(i<13)r+=!s[i][0]||s[i]=='Hello, World!'[i]||s[i++];return r};Object.freeze(f)

Try it online!

Author solution:

new Proxy({v:Array(13).fill(0)},{get:(o,p)=>['a','','Hello, World!'[p]][o.v[p]++]})

Usage:

var p=new Proxy({v:Array(13).fill(0)},{get:(o,p)=>['a','','Hello, World!'[p]][o.v[p]++]}) console.log(f(p))



3

Cubically, 159 bytes (Cracked)

+53$!7@6:2/1+551$?7@6:5+52$!7@66:3/1+552$?7@6:5+3/1+4$!7@6:5/1+3$?7@6:5+1/1+54$!7@6:3/1+552$?7@6:5+1/1+552$?7@6:5+52$!7@6:1/1+551$?7@6:5+1/1+3$!7@6:1/1+1$(@6)7

This will be pretty easy to those who are comfortable with Cubically. Try it online!


1
Is anybody comfortable with Cubically? :P
totallyhuman

@totallyhuman The language is actually pretty simple once you get used to it, and it's fun to use!
TehPers

@totallyhuman It looks like there aren't any turning instructions, so this seems like mostly just math with multiples of 9. Very, very convoluted math.
Robert Fraser

Cracked? I think I got the intended input, but it doesn't quite work, but I'm pretty sure it fails due to an interpreter bug. See my explanation in crack post. If I am right, then you were right that it was actually darn easy : )
rexroni

3

6502 machine code (C64), 51 53 bytes (Cracked)

00 C0                     .WORD $C000     ; load address
20 FD AE                  JSR $AEFD
20 EB B7                  JSR $B7EB
8A                        TXA
0A                        ASL A
45 14                     EOR $14
8D 21 C0                  STA $C021
45 15                     EOR $15
85 15                     STA $15
49 E5                     EOR #$E5
85 14                     STA $14
8E 18 D0                  STX $D018
A0 00                     LDY #$00
B1 14                     LDA ($14),Y
20 D2 FF                  JSR $FFD2
C8                        INY
C0 0E                     CPY #$0E
D0 F6                     BNE *-8
60                        RTS
C8 45 4C 4C 4F 2C 20 D7   .BYTE "Hello, W"
4F 52 4C 44 21 0D         .BYTE "orld!", $D

Online demo

Usage: SYS49152,[x],[n], where x is a 16bit unsigned integer and n is an 8bit unsigned integer.

Input is 52768 and 23 (SYS49152,52768,23)

The second parameter is directly written to D018, a control register of the VIC-II graphics chip. Using a suitable reference, you can deduce what to write there for setting lowercase mode without changing other modes and the address of the screen memory: $17, or decimal 23. With that, you can follow the arithmetics in the code, so the first parameter ends up with the correct string address in $14/$15 (little-endian). A more in-depth explanation can be found in the crack.

Screenshot

Invoked with wrong values, a crash is very likely.

For cracking, you might want to run it in a local installation of vice, so here's a BASIC loader to paste into the emulator (RUN it to place the program at $C000):

0fOa=49152to49202:rEb:pOa,b:nE
1dA32,253,174,32,235,183,138,10,69,20,141,33,192,69,21,133,21,73,229,133,20,142
2dA24,208,160,0,177,20,32,210,255,200,192,255,208,246,96,200,69,76,76,79,44,32
3dA215,79,82,76,68,33,13

Update: Added two bytes for the load address to make this an executable C64 PRG file in response to the discussion on meta


Are you sure you need to call the comma checking function at the beginning? I'm under the impression that b7eb does that check, too.
A Gold Man

b7eb calls aefd, but only after calling ad8a (parse number as float (!)(wtf)(MS)) and b7f7 (convert that float to 16bit unsigned int) -- so I have to first call aefd myself for consuming the first comma.
Felix Palmen

Cracked! Sweet sweet vengeance!
A Gold Man

@AGoldMan finally edited my post. Again, well done! Maybe I can come up with another C64 code that's a bit harder to crack (without being unfair), not sure yet :)
Felix Palmen

2

Python 2, 63 bytes, cracked

Just to get the ball rolling...

#coding:rot13
cevag vachg()==h'Hello, World!'naq'Hello, World!'

Try it online!


1
Is it generally accepted for the OP to crack submissions?
MD XF


3
That's interesting... I hadn't realized any "normal" language supports coding in ROT13 o_o
ETHproductions

13
@Arnauld And you're claiming PHP is a normal language?
NoOneIsHere

1
@NoOneIsHere Er... no. My bad. :-P
Arnauld



2

Jelly, 11 bytes (cracked)

sLƽ$Xṙ5O½Ọ

Try it online!

Intended input:

〡㋄ⶐ✐сᑀ⟙ⶐⶐ〡ސЀᶑ〡㋄ⶐ✐сᑀ⟙ⶐⶐ〡ސЀᶑ〡㋄ⶐ✐сᑀ⟙ⶐⶐ〡ސЀᶑ〡㋄ⶐ✐сᑀ⟙ⶐⶐ〡ސЀᶑ〡㋄ⶐ✐сᑀ⟙ⶐⶐ〡ސЀᶑ〡㋄ⶐ✐сᑀ⟙ⶐⶐ〡ސЀᶑ〡㋄ⶐ✐сᑀ⟙ⶐⶐ〡ސЀᶑ〡㋄ⶐ✐сᑀ⟙ⶐⶐ〡ސЀᶑ〡㋄ⶐ✐сᑀ⟙ⶐⶐ〡ސЀᶑ〡㋄ⶐ✐сᑀ⟙ⶐⶐ〡ސЀᶑ〡㋄ⶐ✐сᑀ⟙ⶐⶐ〡ސЀᶑ〡㋄ⶐ✐сᑀ⟙ⶐⶐ〡ސЀᶑ〡㋄ⶐ✐сᑀ⟙ⶐⶐ〡ސЀᶑ



@HyperNeutrino Heh that was sneaky, given it lived for over half an hour. ;)
Erik the Outgolfer

Heh that's cuz I only saw it 10 minutes before seeing it ;P
HyperNeutrino



2

Python3, 192 bytes Cracked I guess

from sys import *
from numpy import *
e=enumerate
c='Hello World!'
w=eval(argv[1])
x=[ord(n)+2*i for i,n in e(c)]
print(''.join([c[int(sum([c*cos(n*i)for i,c in e(w)])+.01)]for i,n in e(x)]))

The text it reads is the first program argument: python3 hw.py '[1,2,3]'

Don't be lame and try to put a print("Hello World!") statement as the argument... it prints an error afterwards anyways (at least on the command line), so I don't think that should count. (Edit: somebody did exactly that)


4
Cracked. Lame crack, but unrestricted eval must be punished =)
Sisyphus


2

Lua 5.1, 44 bytes (Cracked)

s=...loadstring(#s>4+#s:gsub("%l","")or s)()

Note that Lua 5.1 is a different language than Lua 5.2 or Lua 5.3. "Try it online" doesn't have Lua 5.1. You can check your Lua version by running print(_VERSION). (There should be a solution in any implementation that uses PUC-Rio's Lua 5.1 core.)

As a test harness, you can use something like this:

function test(...)s=...loadstring(#s>4+#s:gsub("%l","")or s)()end

test[[
This is my input!
It can have multiple lines!
]]

Test harness on repl.it


2

C (GCC on TIO), 84 bytes golfed (Cracked)

#include<stdio.h>
main(x){scanf("%d",&x);printf("%2$s","Hello, World!\n",(void*)x);}

Here's an ungolfed version that works too:

#include <stdio.h>
int main(void)
{
    int x;
    scanf("%d",&x);

    printf("%2$s","Hello, World!\n",(void*)x);
}

2

JavaScript (ES6), 92 bytes (Cracked)

This simple string copy function seems to be really resisting you to copy any strings resembling Hello, World!...

f=s=>{let r='',i=0;while(i<13)r+=s[i]=='Hello, World!'[i]||s[i++];return r};Object.freeze(f)

Try it online!





2

JavaScript (ES6) 107 Bytes [Thanks Евгений Новиков] (Cracked)

i=r=>{for(e="",n=0;r.length>n;o=r.charCodeAt(++n),e+=String.fromCharCode(((3^o^19)<<1^15^13)<<1));return e}

Call on the i function using a string.

The console.log... is for testing purposes.

Try It Online!


Welcome to PPCG! You can save 8 bytes: (1) remove var, (2) () from one arrow-function argument, (3) replace return to eval("") (4) delete ; at the end. 110 bytes solution: pastebin.com/qwdm7fT7 Good luck
Евгений Новиков

Finally got 50 rep, so: Cracked
Voile
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.