59
\$\begingroup\$

The robbers thread can be found here: The Mystery String Printer (Robbers)

Your challenge

  • Write a program, function, or REPL script that prints a string to STDOUT.
  • The robbers will try to create a program that prints the same string.
  • If they successfully can create the program within 7 days, your submission is cracked.
  • If nobody can create a program that prints the same string within 7 days, your submission is safe. You may choose to reveal your program, or leave it to challenge future robbers. However, if you don't reveal it, you can't get any points from your submission (don't put "safe" in your answer header if you choose to do this).

Restrictions

  • The program must be less than or equal to 128 bytes total (more on this later).
  • If the program depends on the program name, or the name/contents of an external file, you must say that it does so, and include this in your total byte count.
  • The printed string must be less than or equal to 2048 bytes.
  • The printed string must consist of only printable ASCII characters (new lines can be included).
  • The program must produce the same output every time that it is run.
  • Built-in cryptographic primitives (includes any rng, encryption, decryption, and hash) aren't allowed.
  • The program must not take input.
  • No standard loopholes.

Scoring

  • If a submission is cracked before seven days, the submission earns 0 points.
  • A safe submission of ≤128 characters earns 1 point.
  • A safe submission of ≤64 characters earns 2 points. If it's less than or equal to 32 bytes, it earns 4 points, and so on.
  • Each safe submission also earns an additional 3 point bonus (independent of the length).
  • There is a tiny (1/2 point) penalty for every cracked after your first one.
  • Note that the robber's solution has to be in the same range of program lengths.
  • Each person may submit a maximum of 1 program per byte range per language (different versions and arbitrary substitutions of the same language don't count as separate languages). Example: you can post a 32 byte and a 64 byte pyth program, but you can't post a 128 byte program in both Java 7 and Java 8.
  • The person with the highest point total wins.

Submissions

Each submission must have the following pieces of information:

  • The name of the language. All new robbers' solutions must be the same language.
  • The range of the program size (this is the nearest power of two higher than the size of the program; for example, if your program is 25 bytes, this would be "≤32").
  • The actual string to be printed out.
  • If a submission is safe, put "safe" and the program length (to the nearest power of 2) in your header. If there are multiple numbers in your header, put the power of 2 last.

This stack snippet generates leaderboards and lists all of the open submissions. If there are any problems with the snippet, please leave a comment.

/* Configuration */

var QUESTION_ID = 60328; // Obtain this from the url
// It will be like http://XYZ.stackexchange.com/questions/QUESTION_ID/... on any question page
var ANSWER_FILTER = "!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe";
var COMMENT_FILTER = "!)Q2B_A2kjfAiU78X(md6BoYk";
var OVERRIDE_USER = 167084; // This should be the user ID of the challenge author.

var SECONDSINDAY = 86400;
var SAFECUTOFFDAYS = 7;
var SORTBYTIME = true;
var SUBTRACTCRACKEDPOINTS = true;
var EXPIREDTIME = 1446336000;


/* App */

var answers = [],
  answers_hash, answer_ids, answer_page = 1,
  more_answers = true,
  comment_page;



function answersUrl(index) {
  return "//api.stackexchange.com/2.2/questions/" + QUESTION_ID + "/answers?page=" + index + "&pagesize=100&order=desc&sort=creation&site=codegolf&filter=" + ANSWER_FILTER;
}

function commentUrl(index, answers) {
  return "//api.stackexchange.com/2.2/answers/" + answers.join(';') + "/comments?page=" + index + "&pagesize=100&order=desc&sort=creation&site=codegolf&filter=" + COMMENT_FILTER;
}

function getAnswers() {

  jQuery.ajax({
    url: answersUrl(answer_page++),
    method: "get",
    dataType: "jsonp",
    crossDomain: true,
    success: function(data) {
      answers.push.apply(answers, data.items);
      answers_hash = [];
      answer_ids = [];
      data.items.forEach(function(a) {
        a.comments = [];
        var id = +a.share_link.match(/\d+/);
        answer_ids.push(id);
        answers_hash[id] = a;
      });
      if (!data.has_more) more_answers = false;
      comment_page = 1;
      getComments();
    }
  });

}

function getComments() {
  jQuery.ajax({
    url: commentUrl(comment_page++, answer_ids),
    method: "get",
    dataType: "jsonp",
    crossDomain: true,
    success: function(data) {
      data.items.forEach(function(c) {

        answers_hash[c.post_id].comments.push(c);

      });

      if (data.has_more) getComments();
      else if (more_answers) getAnswers();
      else process();
    }
  });
}

getAnswers();


var SAFE_REG = /<h\d>.*?[sS][aA][fF][eE].*<\/\h\d>/;
var POINTS_REG = /(?:<=|≤|&lt;=)\s?(?:<\/?strong>)?\s?(\d+)/
var POINTS_REG_ALT = /<h\d>.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/;
var CRACKED_HEADER_REG = /<h\d>.*[Cc][Rr][Aa][Cc][Kk][Ee][Dd].*<\/h\d>/;
var CRACKED_COMMENT_REG = /(.*[Cc][Rr][Aa][Cc][Kk][Ee][Dd].*<a href=.*)|(.*<a href=.*[Cc][Rr][Aa][Cc][Kk][Ee][Dd].*)/
var OVERRIDE_REG = /^Override\s*header:\s*/i;
var LANGUAGE_REG = /<h\d>\s*(.+?),.*<\/h\d>/;
var LANGUAGE_REG_ALT = /<h\d>\s*(<a href=.+<\/a>).*<\/h\d>/
var LANGUAGE_REG_ALT_2 = /<h\d>\s*(.+?)\s.*<\/h\d>/;
var LANGUAGE_REG_ALT_3 = /<h\d>(.+?)<\/h\d>/;

function getAuthorName(a) {
  return a.owner.display_name;
}

function process() {

  var valid = [];
  var open = [];



  answers.forEach(function(a) {

    var body = a.body;
    var cracked = false;

    a.comments.forEach(function(c) {
      var was_safe = (c.creation_date + (SECONDSINDAY * SAFECUTOFFDAYS) > a.creation_date);
      if (CRACKED_COMMENT_REG.test(c.body) && !was_safe)
        cracked = true;
    });

    if (CRACKED_HEADER_REG.test(body)) cracked = true;

    // if (SUBTRACTCRACKEDPOINTS||!cracked) {

    var createDate = a.creation_date;
    var currentDate = Date.now() / 1000;
    var timeToSafe = (createDate + (SECONDSINDAY * SAFECUTOFFDAYS) - currentDate) / SECONDSINDAY;
    var SafeTimeStr = (timeToSafe > 2) ? (Math.floor(timeToSafe) + " Days") :
      (timeToSafe > 1) ? ("1 Day") :
      (timeToSafe > (2 / 24)) ? (Math.floor(timeToSafe * 24) + " Hours") :
      (timeToSafe > (1 / 24)) ? ("1 Hour") :
      "<1 Hour";

    var expired = createDate > (EXPIREDTIME);

    var safe = timeToSafe < 0;
    var points = body.match(POINTS_REG);
    if (!points) points = body.match(POINTS_REG_ALT);
    safe = safe && !cracked

    isOpen = !(cracked || safe);

    if (points) {
      var length = parseInt(points[1]);
      var safepoints = 0;
      if (length <= 4) safepoints = 32;
      else if (length <= 8) safepoints = 16;
      else if (length <= 16) safepoints = 8;
      else if (length <= 32) safepoints = 4;
      else if (length <= 64) safepoints = 2;
      else if (length <= 128) safepoints = 1;



      valid.push({
        user: getAuthorName(a),
        numberOfSubmissions: (safe && !expired) ? 1 : 0,
        points: (safe && !expired) ? safepoints : 0,
        open: (isOpen && !expired) ? 1 : 0,
        cracked: (cracked && !expired) ? 1 : 0,
        expired: (expired) ? 1 : 0
      });

    }

    if ((isOpen || expired) && points) {

      var language = body.match(LANGUAGE_REG);
      if (!language) language = body.match(LANGUAGE_REG_ALT);
      if (!language) language = body.match(LANGUAGE_REG_ALT_2);
      if (!language) language = body.match(LANGUAGE_REG_ALT_3);



      open.push({
        user: getAuthorName(a),
        length: points ? points[1] : "???",
        language: language ? language[1] : "???",
        link: a.share_link,
        timeToSafe: timeToSafe,
        timeStr: (expired) ? "Challenge closed" : SafeTimeStr
      });
    }
    // }
  });


  if (SORTBYTIME) {
    open.sort(function(a, b) {
      return a.timeToSafe - b.timeToSafe;
    });
  } else {
    open.sort(function(a, b) {
      var r1 = parseInt(a.length);
      var r2 = parseInt(b.length);
      if (r1 && r2) return r1 - r2;
      else if (r1) return r2;
      else if (r2) return r1;
      else return 0;
    });
  }

  var pointTotals = [];
  valid.forEach(function(a) {

    var index = -1;
    var author = a.user;
    pointTotals.forEach(function(p) {
      if (p.user == author) index = pointTotals.indexOf(p);
    });

    if (index == -1) pointTotals.push(a);
    else {
      pointTotals[index].points += a.points;
      pointTotals[index].numberOfSubmissions += a.numberOfSubmissions;
      pointTotals[index].cracked += a.cracked;
      pointTotals[index].expired += a.expired;
      pointTotals[index].open += a.open;
      if (SUBTRACTCRACKEDPOINTS && a.cracked && pointTotals[index].cracked > 1) pointTotals[index].points -= .5;
    }

  });

  pointTotals.forEach(function(a) {
    a.points += (a.numberOfSubmissions) ? ((a.numberOfSubmissions) * 3) : 0;
  });

  pointTotals.sort(function(a, b) {
    if (a.points != b.points)
      return b.points - a.points;
    else if (a.numberOfSubmissions != b.numberOfSubmissions)
      return b.numberOfSubmissions - a.numberOfSubmissions;
    else if (a.open != b.open)
      return b.open - a.open;
    else if (a.cracked != b.cracked)
      return a.cracked - b.cracked;
    else return 0;
  });



  pointTotals.forEach(function(a) {


    var answer = jQuery("#answer-template").html();
    answer = answer
      .replace("{{NAME}}", a.user)
      .replace("{{SAFE}}", a.numberOfSubmissions)
      .replace("{{OPEN}}", a.open)
      .replace("{{CLOSED}}", a.expired)
      .replace("{{CRACKED}}", a.cracked)
      .replace("{{POINTS}}", a.points);
    answer = jQuery(answer);
    jQuery("#answers").append(answer);


  });



  open.forEach(function(a) {
    var answer = jQuery("#open-template").html();
    answer = answer
      .replace("{{NAME}}", a.user)
      .replace("{{LENGTH}}", a.length)
      .replace("{{LANGUAGE}}", a.language)
      .replace("{{TIME}}", a.timeStr)
      .replace("{{LINK}}", a.link);
    answer = jQuery(answer);
    jQuery("#opensubs").append(answer);
  });



}
body {
  text-align: left !important
}
#answer-list {
  padding: 10px;
  width: 350px;
  float: left;
}
#open-list {
  padding: 10px;
  width: 470px;
  float: left;
}
table thead {
  font-weight: bold;
  vertical-align: top;
}
table td {
  padding: 5px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b">
<div id="answer-list">
  <h2>Leaderboard</h2>
  <table class="answer-list">
    <thead>
      <tr>

        <td>Author</td>
        <td>Safe</td>
        <td>Open</td>

        <td>Cracked</td>
        <td>Late Entry</td>
        <td>Score</td>
      </tr>
    </thead>
    <tbody id="answers">

    </tbody>
  </table>
</div>

<div id="open-list">
  <h2>Open submissions</h2>
  <table class="open-list">
    <thead>
      <tr>
        <td>Author</td>
        <td>Length</td>
        <td>Language</td>
        <td>Time Remaining</td>
        <td>Link (open in new tab)</td>
      </tr>
    </thead>
    <tbody id="opensubs">
    </tbody>
  </table>
</div>

<table style="display: none">
  <tbody id="answer-template">
    <tr>
      <td>{{NAME}}</td>
      <td>{{SAFE}}</td>
      <td>{{OPEN}}</td>

      <td>{{CRACKED}}</td>
      <td>{{CLOSED}}</td>
      <td>{{POINTS}}</td>


    </tr>
  </tbody>
</table>

<table style="display: none">
  <tbody id="open-template">
    <tr>
      <td>{{NAME}}</td>
      <td>{{LENGTH}}</td>
      <td>{{LANGUAGE}}</td>
      <td>{{TIME}}</td>
      <td><a target="_parent" href="{{LINK}}">Link</a>
      </td>
    </tr>
  </tbody>
</table>

Use the following formats for entries:

Language, (any text with the program size as the last number)
=

or

Language
=
Length <= 16

Note that the snippet will only put the first word in the header as the language if it doesn't detect a comma.

For safe submissions, put safe in your header. The snippet will automatically put your program in the "safe" column if the time is expired, so this is more to tell any robbers that your program is safe.

For cracked submissions, put cracked in your header.

The program should also be able to recognize if a comment says "cracked" and has a link; however, this is not guaranteed.

Tiebreaking order: Points -> # of Safe submissions -> Least amount of cracked submissions.

Note that the snippet sorts by open submissions before least cracked, but open submissions will not be counted at the end of the contest.

This challenge is now closed.

Most points overall winner: Dennis

Most safe submissions: DLosc

(Note that the number of safe submissions doesn't translate to a point amount, as the size of the programs are considered in calculating the score).

\$\endgroup\$
17
  • 5
    \$\begingroup\$ We should remind the cops that the output should better be longer than the program size, to reduce trivial solutions like codegolf.stackexchange.com/a/60395 and codegolf.stackexchange.com/a/60359 \$\endgroup\$
    – kennytm
    Commented Oct 11, 2015 at 16:56
  • 2
    \$\begingroup\$ @bmarks There has to exist a way to execute the language, and the language must be able to display a string of ASCII characters. If you want to use HQ9+, congratulations, you have just gotten yourself a cracked submission. \$\endgroup\$
    – Daniel M.
    Commented Oct 12, 2015 at 20:35
  • 3
    \$\begingroup\$ @bmarks I'd prefer not, but I'm not going to stop you. \$\endgroup\$
    – Daniel M.
    Commented Oct 12, 2015 at 21:30
  • 15
    \$\begingroup\$ All the number-only outputs are super boring. \$\endgroup\$
    – mbomb007
    Commented Oct 13, 2015 at 20:06
  • 4
    \$\begingroup\$ Please consider using the Sandbox the next time. Preferably, the rules of a challenge shouldn't change at all after it has been posted. I've lost track of how many times the rules have changed here... \$\endgroup\$
    – Dennis
    Commented Oct 17, 2015 at 20:01

209 Answers 209

1 2 3
4
5
7
1
\$\begingroup\$

Macaroni 0.0.2cracked by kennytm

Range: ≤64.

...................................................................................................

The intended solution:

set x 99 label l print "." set x add x -1 map slice " " 0 x 1 l
\$\endgroup\$
3
  • \$\begingroup\$ That's 99 .s, right? \$\endgroup\$
    – lynn
    Commented Oct 11, 2015 at 15:59
  • \$\begingroup\$ cracked \$\endgroup\$
    – kennytm
    Commented Oct 11, 2015 at 16:08
  • 1
    \$\begingroup\$ @kennytm Argh, I should have considered that. The intended solution was... slightly more complicated. ;) \$\endgroup\$
    – Doorknob
    Commented Oct 11, 2015 at 16:22
1
\$\begingroup\$

Pyth

Range: ≤ 8

String:

49177772591428004056910940816433485702518448313728069154605014641218367314521229637591075731850711078018713
\$\endgroup\$
1
\$\begingroup\$

Python 3 (<= 32 bytes)

REPL.

177172218082085052481067589112390245408383458973982190836613425027273840834324281100485149132551246778981339968190311073240776569178878685724789960654670348361662827252973483749744632038916925690939659916043492930278567489422231220073029774565250343832768238643314785908679491540640941915666237839942314696031493953803281287102418829064719403480444915114668250543498318227260440120029605628856083175765744363390702825101686789888725560296981834662758351030421544264559750221026406067121783807117962060340615730987604546604714155531342482083463681465130945512630675950142946922773503989053740822544224822808739521839720865290854356372141124499117074370897738546403209492027955454351993333035066859502938275568857093391457569773694819414826823687786033626122521592630462668886697269593537206139576741010831202963443941784967084810577008190387631080387860331107152262177887372170404448327177863200442345178285860750842841747607378523075424463460687928269706777288437394933478285113452249795657205511632132532278321265130924156213221634753820154649629494859389730150879262081109896155213238885748358893270681278721615531236111911030373024923666321800532386588112916399442185933551569956564864083732019627140517341497168342679467249158600970283106090236941217046682435095258063945957758115971959566229732597197779697266154520814140590150
\$\endgroup\$
1
\$\begingroup\$

Octave, <=4 bytes cracked by kennytm

ans =  4.8105

Cracked:

i^-i
\$\endgroup\$
4
  • \$\begingroup\$ cracked \$\endgroup\$
    – kennytm
    Commented Oct 11, 2015 at 18:36
  • 1
    \$\begingroup\$ It seems like you intend to win this challenge?=) \$\endgroup\$
    – flawr
    Commented Oct 11, 2015 at 19:25
  • \$\begingroup\$ Why does it round to only 4 decimal places? \$\endgroup\$
    – mbomb007
    Commented Oct 14, 2015 at 13:50
  • \$\begingroup\$ That is just the standard formatting, you can change that by using format long or something similar. \$\endgroup\$
    – flawr
    Commented Oct 14, 2015 at 16:31
1
\$\begingroup\$

Rust, cracked!

Here's the output

AACAAEGAAACIIMOAAACAAEGQQQSYYDFAAACAAEGAAACIIMOHHHJHHLNXXXAGGKMAAACAAEGAAACIIMOAAACAAEGQQQSYYDFOOO

That's 98 characters long.

The source code is <=128 bytes

Here is the source

 fn main(){let mut i: u8 = 1;while i<99{print!("{}",(65+(i&(2*i))%25) as char);i+=1;}}

Since it was late at night I made the mistake of not making the output longer than the source code byte limit (which would have been really easy)... whoops! This might have been fun to crack otherwise. Oh well, Kudos to Doorknob.

\$\endgroup\$
4
  • 3
    \$\begingroup\$ A simple print statement would be so obvious.. \$\endgroup\$ Commented Oct 11, 2015 at 14:20
  • \$\begingroup\$ uh, cracked? \$\endgroup\$
    – Doorknob
    Commented Oct 11, 2015 at 14:56
  • \$\begingroup\$ @Doorknob Well I guess a bit more creative than that. You can see patterns in the text. (Too bad I don't code in rust) \$\endgroup\$ Commented Oct 11, 2015 at 19:02
  • 2
    \$\begingroup\$ I was like "Wow I'm so clever, no one will figure this out." \$\endgroup\$
    – Liam
    Commented Oct 11, 2015 at 20:57
1
\$\begingroup\$

TI-BASIC, ≤8 bytes

-.3036143372
\$\endgroup\$
0
1
\$\begingroup\$

Grin, ≤8 bytes

0.27994163386353987
\$\endgroup\$
0
1
\$\begingroup\$

MATLAB, ≤ 4 bytes

String:

ans =
   0.4133 + 0.9106i

This also works with Octave and its online interpreter, though in that you will get the output:

ans =  0.41329 + 0.91060i

This will probably be solved quite quickly as there is very little you can do in MATLAB with only 4 bytes! But never the less...

\$\endgroup\$
1
  • \$\begingroup\$ Cracked. \$\endgroup\$
    – lirtosiast
    Commented Oct 12, 2015 at 2:27
1
\$\begingroup\$

Python, cracked by Sp3000

UUU UUC UUA UUG UCU UCC UCA UCG UAU UAC UAA UAG UGU UGC UGA UGG CUU CUC CUA CUG CCU CCC CCA CCG CAU CAC CAA CAG CGU CGC CGA CGG AUU AUC AUA AUG ACU ACC ACA ACG AAU AAC AAA AAG AGU AGC AGA AGG GUU GUC GUA GUG GCU GCC GCA GCG GAU GAC GAA GAG GGU GGC GGA GGG

Range ≤ 64

\$\endgroup\$
3
  • \$\begingroup\$ Which Python is this in? I have a solution for Python 2 but I just want to check \$\endgroup\$
    – Sp3000
    Commented Oct 12, 2015 at 6:38
  • \$\begingroup\$ It should work in both. (At least, mine does.) @Sp3000 \$\endgroup\$
    – Zach Gates
    Commented Oct 12, 2015 at 6:39
  • \$\begingroup\$ Cracked \$\endgroup\$
    – Sp3000
    Commented Oct 12, 2015 at 6:49
1
\$\begingroup\$

Bash

Length <= 64

This cop tries hard to be efficient, but feels trolled by inefficient bureaucracy.

UlRSelNVRkJRVUZCUVVGQlFTdDZSMjlSTUVGTlFXZEJUVXclTDBWUloxRnFVQzlFU1RZeGNWcGxa
bVplUm1OcFNXbEphVWxwU1dsSgphVWxwU1dsSmFVbHBTV2xKYVVscFNXbEphUXBKYVVscFNXbEph
\$\endgroup\$
2
  • \$\begingroup\$ What is it with you and your L0VRZ? \$\endgroup\$ Commented Oct 12, 2015 at 11:51
  • 2
    \$\begingroup\$ The cop would like to answer but has to send reports up multiple levels of management. The answer wouldn't end up any easier to read than what you already saw... \$\endgroup\$
    – gmatht
    Commented Oct 12, 2015 at 12:10
1
\$\begingroup\$

Mathematica 10.1, range ≤64, cracked

String length 2022.

1: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

Hint:

The output of this program was only fixed a few centuries ago.

Program:

Print@Nest[Compress,ExampleData@{"Text","ToBeOrNotToBe"},13]
\$\endgroup\$
5
  • \$\begingroup\$ Cracked. \$\endgroup\$
    – alephalpha
    Commented Oct 12, 2015 at 7:47
  • \$\begingroup\$ @alephalpha Close, but not it. \$\endgroup\$ Commented Oct 12, 2015 at 10:06
  • \$\begingroup\$ But the output is the same. Or should I add a Print@? \$\endgroup\$
    – alephalpha
    Commented Oct 12, 2015 at 10:57
  • \$\begingroup\$ @alephalpha Yup. Also, what gave it away? \$\endgroup\$ Commented Oct 12, 2015 at 10:58
  • 1
    \$\begingroup\$ The 1: is a dead giveaway that you used Compress. From there we can just apply Uncompress and we get another compressed string; rinse and repeat, and eventually "To be, or not to be, ..." emerges. \$\endgroup\$ Commented Oct 14, 2015 at 22:35
1
\$\begingroup\$

Matlab/Octave, range ≤16, cracked by kennytm

Desired output in Matlab is

ans =

        2650        2700        2750
        2703        2754        2805
        2756        2808        2860

And output on octave is

ans =

   2650   2700   2750
   2703   2754   2805
   2756   2808   2860

Good luck!

\$\endgroup\$
1
  • \$\begingroup\$ cracked \$\endgroup\$
    – kennytm
    Commented Oct 12, 2015 at 13:04
1
\$\begingroup\$

><>, ≤8 bytes - Cracked

That was fast.

Output (17 chars):

11059633333125108

Works on the official and online interpreter.

\$\endgroup\$
1
  • \$\begingroup\$ Cracked \$\endgroup\$
    – Sp3000
    Commented Oct 12, 2015 at 13:37
1
\$\begingroup\$

PowerShell, <= 2 (cracked by Sven the Surfer)

True

Edit -- Assumes a newly opened PowerShell session.

Code:

$?

This is actually several short-hand aliases mushed together for "Did the previous command execute successfully?" Since we're starting a new session, there isn't a previous command, so "Did nothing execute successfully?" evaluates to True.

\$\endgroup\$
1
  • \$\begingroup\$ Cracked \$\endgroup\$
    – Namaskar
    Commented Oct 12, 2015 at 18:46
1
\$\begingroup\$

CJam, ≤8

487480661435681880634
\$\endgroup\$
1
\$\begingroup\$

Haskell, <= 64

"234269035277217371450204053788208058560799137025150410636234412255689818762656987340189922194199908934585754436770945621945227536480994122027390744842460652134286726113671600854494421884443688675047254139921459136558907251581541275435880046048108350763422072425649208447945247377494980796937940655701307997562317231177713235652338028417451236558995227590459444617827926812430772358074299811337678654829391325114470251619398332973724789690679216976966052216145384676794461656118897180025443680331132394850675017509197303075089601960100983874271959120860501629839988014042208671920682889138254667751623709396284481735303452673124139121777377846871850672033106472280969141703928366197810964922618740449515668724456268271448647699989156381445205967478469028588157734532905706524844819908323813305035658162074736928332593023809473156005356000353055733539612246442774946157819406373129208057258831053076086585508756487286954717132003621711976832374447894816733777893008621416274050484859334617085131384283216302606998622119582879282589199593973325446462015234491992064297172938689972846409163423245594572882877709043959807372637664123289304645760119286430615178518063617152788828056353625031963803801427210223721730258270231763792780768664884800062997419345647149704788982766859295443743499252375539507398523730009926333960108410757294547781696131123657453625024387016742581573855196031413093336350761030038596777874432933968895083735228717242953009263093968742573629027297647387126891761852949241957626049569804429541178011981933256268484794652351497560293391899479900814683813828949668729076822808628116446774100881521615133458539277068540778366277878840073320092074401621104369683572238945467129923105411003295755601858665112706827105134190951462194645064739837907120118633835684577553292202532275739715956095669642085664671234208045303605448727259339868163682440084839078742590621118695767964815678513010560919582968899674389139580927687507301062249730389625964423196961408134619058630786289121348398596872496242241800816316097838514854690220862576"

2046 bytes.

This is my first post here, hopefully I did something right!

\$\endgroup\$
1
\$\begingroup\$

Coffee Script, <= 16 bytes (Cracked by Sp3000)

Tested with online REPL.

2.177586090303602

17 byte output. This should go fast...

Original code:

Math.PI*Math.LN2
\$\endgroup\$
5
  • \$\begingroup\$ Cracked \$\endgroup\$
    – Sp3000
    Commented Oct 13, 2015 at 2:39
  • \$\begingroup\$ Seven minutes... holy crap, dude. XD \$\endgroup\$ Commented Oct 13, 2015 at 2:47
  • \$\begingroup\$ Had I known about inverse symbolic calculators I woulda never tried this... \$\endgroup\$
    – J Atkin
    Commented Oct 13, 2015 at 13:06
  • 1
    \$\begingroup\$ @JAtkin You can literally just paste the number into WolframAlpha... \$\endgroup\$
    – mbomb007
    Commented Oct 15, 2015 at 16:06
  • \$\begingroup\$ Hehehe I know that now!! Wolfram and inverse calculators are my new favorite toys. \$\endgroup\$
    – J Atkin
    Commented Oct 15, 2015 at 16:13
1
\$\begingroup\$

Snails, ≤ 2 bytes (cracked)

8

I thought I'd join in the fun of everyone posting self-written languages/interpreters that no one else knows how to use.

Note to anyone who tries to brute force this: Don't run the programs ~+ or ~,, lest the interpreter attempt to consume several terabytes of memory.

\$\endgroup\$
3
  • \$\begingroup\$ Did you put any documentation anywhere? \$\endgroup\$ Commented Oct 12, 2015 at 10:57
  • 1
    \$\begingroup\$ @LegionMammal978 Um... that's the "fun" part. \$\endgroup\$
    – feersum
    Commented Oct 12, 2015 at 11:22
  • \$\begingroup\$ Cracked \$\endgroup\$
    – r3mainer
    Commented Oct 13, 2015 at 11:56
1
\$\begingroup\$

QBasic, <= 32 (Cracked by fschmengler)

 1  2    3      4        5          6            7              8 

Uses pre-auto-formatter shortcut syntax. Tested with QB64.


Here's my original version:

FOR i=1TO 8
LOCATE,i*i
?i;
NEXT

The space before the 1 and also after the 8 is part of the output. (Though when you run the program, you can't exactly tell about the one at the end, unless you try to print something else immediately afterward.) QBasic prints a space before and after nonnegative numbers, though some emulators (like the one at repl.it) don't format their output correctly.

\$\endgroup\$
6
  • 1
    \$\begingroup\$ There is a space before the "1" and after the "8"? \$\endgroup\$
    – kennytm
    Commented Oct 13, 2015 at 17:19
  • \$\begingroup\$ Good question. If there is no trailing space, I have a 31 byte solution. \$\endgroup\$ Commented Oct 13, 2015 at 19:20
  • \$\begingroup\$ Yes, it has the leading space. I'll post it and leave it up to you to judge \$\endgroup\$ Commented Oct 13, 2015 at 20:18
  • \$\begingroup\$ Cracked? \$\endgroup\$ Commented Oct 13, 2015 at 20:25
  • \$\begingroup\$ Downloaded QB64, for fun and nostalgia. I totally missed that second space, but should be easy to fix... \$\endgroup\$ Commented Oct 13, 2015 at 20:33
1
\$\begingroup\$

JavaScript, ≤16 bytes, cracked.

Ohhh, this one is a tough one.

31525197391593470

This is seventeen bytes.

Well, again, not the way I intended it, but here:

7/Number.EPSILON

I'm at -.5 points ;-;

\$\endgroup\$
10
  • \$\begingroup\$ Cracked? \$\endgroup\$
    – r3mainer
    Commented Oct 14, 2015 at 1:26
  • 3
    \$\begingroup\$ You have to say if it's not a complete program, right? \$\endgroup\$
    – mbomb007
    Commented Oct 14, 2015 at 14:16
  • \$\begingroup\$ @mbomb007 All JavaScript programs are complete programs. \$\endgroup\$ Commented Oct 14, 2015 at 19:29
  • 2
    \$\begingroup\$ Using the console (a REPL) is not a complete JS program. In JS, you need to use console.log for output. \$\endgroup\$
    – mbomb007
    Commented Oct 14, 2015 at 20:04
  • 1
    \$\begingroup\$ If you're programming in JS, using a numeric literal does not automatically print it to the console, so it's not really debatable that it requires a REPL to work. \$\endgroup\$
    – mbomb007
    Commented Oct 14, 2015 at 20:14
1
\$\begingroup\$

Powershell, ≤16

61788129934789836849895604649984
\$\endgroup\$
1
\$\begingroup\$

Lua, ≤ 32 (cracked by Doub)

Output:

1(222)33333(4444444)555555555(66666666666)7777777777777 7

You need to write a Lua program (not a REPL command).

\$\endgroup\$
1
1
\$\begingroup\$

bc -l (<= 8 bytes, cracked by SuperJedi224)

1.56024766824332863615
\$\endgroup\$
2
  • \$\begingroup\$ I think I found your forumula. Now to go learn bc. \$\endgroup\$ Commented Oct 11, 2015 at 19:55
  • \$\begingroup\$ Cracked. \$\endgroup\$ Commented Oct 11, 2015 at 20:18
1
\$\begingroup\$

Javascript, <=32, CRACKED

(Not expecting to last long) In Chrome 45.0.2454.101 m:

0.1411200080598672

This is a full program. It actually prints 0.1411200090598672 if it is in a HTML5 document.

Oh I'm stupid, console.log(0.1411whatever); works. I was thinking of alert(Math.sin(3));

\$\endgroup\$
2
  • \$\begingroup\$ Cracked... \$\endgroup\$
    – Dennis
    Commented Oct 16, 2015 at 20:00
  • \$\begingroup\$ @dennis: oh fail... my answer was alert(Math.sin(3)) \$\endgroup\$
    – user46167
    Commented Oct 16, 2015 at 22:52
1
\$\begingroup\$

><> (cracked by Sp3000)

Range: <= 32

Code:

ff*dd*$1-:?v$n;
           >$30.

String:

563894191846824322181557735263848163944611762131417907481282961909287815042114141071535925118959126585814601613352812123491114638156704068663512650264401513800791946239391603476080341849517532994005910896839888895899232312762154139810647195016820308009
\$\endgroup\$
1
  • \$\begingroup\$ Cracked \$\endgroup\$
    – Sp3000
    Commented Oct 17, 2015 at 18:42
1
\$\begingroup\$

CJam (cracked by Sp3000)

3.724191778237173

Range ≤ 4

Let's see how long this one lasts.

\$\endgroup\$
2
  • \$\begingroup\$ Cracked \$\endgroup\$
    – Sp3000
    Commented Oct 17, 2015 at 23:47
  • \$\begingroup\$ I guess I have my answer... \$\endgroup\$
    – Dennis
    Commented Oct 17, 2015 at 23:50
1
\$\begingroup\$

Wolfram programming language

Output (36 bytes)

{7, 11, 14, 11, 7, 10, 10, 10, 6, 9}

Range: ≤16

\$\endgroup\$
1
  • \$\begingroup\$ Does the byte count include the Print? \$\endgroup\$ Commented Oct 23, 2015 at 10:47
1
\$\begingroup\$

Wolfram programming language, cracked by alephalpha

Output (111 bytes)

{1, 4, 1, 18, 1, 1, 1, 4, 1, 9, 9, 2, 1, 1, 1, 2, 7, 1, 1, 7, 11, 1, 1, 1, 3, 1, 6, 1, 30, 1, 4, 1, 1, 4, 1, 3}

Range: ≤32

\$\endgroup\$
1
  • \$\begingroup\$ Cracked. \$\endgroup\$
    – alephalpha
    Commented Oct 18, 2015 at 11:13
1
\$\begingroup\$

Python 2, safe

Output (400 bytes)

2243741369805258403802281453161847831993100895210761465122158243748106741965559879210950925986787187884683594462521622978061423199763328847096978817424056039876331594730426879701090232645796839130259328243206775429644682566205913609484054454294080314366063978878893188641070706588914162057003952773480796098824291229522724034240214526221641336067994669537082582022249580216662833919604859431735474099

Range ≤32

Original code (32 bytes)

b=1337;a=2**b/b-b-13**37;print a
\$\endgroup\$
7
  • \$\begingroup\$ I like the note to self :) \$\endgroup\$
    – J Atkin
    Commented Oct 12, 2015 at 0:54
  • 1
    \$\begingroup\$ @JAtkin I tend to forget that kind of thing. I'd be surprised if it lasts the whole week, but if it does, at least I'll know where my intended code is. \$\endgroup\$
    – Arcturus
    Commented Oct 12, 2015 at 1:19
  • \$\begingroup\$ @Eridan Just create an account on Ideone. \$\endgroup\$
    – mbomb007
    Commented Oct 13, 2015 at 19:07
  • \$\begingroup\$ @mbomb007 I have an account on Datajoy; I just tend to forget that I put code snippets there. Is there any advantage to using Ideone over Datajoy? \$\endgroup\$
    – Arcturus
    Commented Oct 14, 2015 at 2:06
  • \$\begingroup\$ @Eridan Well, by looking at it, DataJoy has history, access to Github and Dropbox, but only Python and R. Ideone has a ton of languages (even different versions), and your programs can be either private, or shared by URL. I don't like that there is a run-time limit of 15 seconds for members. You can't have more than one file and have a project, maybe? Also, the box you put program input in doesn't allow pasting of raw bytes, so it can't contain "0x00", for example. \$\endgroup\$
    – mbomb007
    Commented Oct 14, 2015 at 3:42
1
\$\begingroup\$

AppleScript, ≤ 64 Bytes Cracked

Ooh, yes, time for another AppleScript answer.

Output String:

688.0
317.0
946.0
575.0
204.0
833.0
462.0
91.0
720.0
349.0
978.0
607.0
236.0
865.0
494.0
123.0
752.0
381.0
10.0
639.0
268.0
897.0
526.0
155.0
784.0
413.0
42.0
671.0
300.0
929.0
558.0
187.0
816.0
445.0
74.0
703.0
332.0
961.0
590.0
219.0
848.0
477.0
106.0
735.0
364.0
993.0
622.0
251.0
880.0
509.0
138.0
767.0
396.0
25.0
654.0
283.0
912.0
541.0
170.0
799.0
428.0
57.0
686.0
315.0
944.0
573.0
202.0
831.0
460.0
89.0
718.0
347.0
976.0
605.0
234.0
863.0
492.0
121.0
750.0
379.0
8.0
637.0
266.0
895.0
524.0
153.0
782.0
411.0
40.0
669.0
298.0
927.0
556.0
185.0
814.0
443.0
72.0
701.0
330.0
959.0
588.0
217.0
846.0
475.0
104.0
733.0
362.0
991.0
620.0
249.0
878.0
507.0
136.0
765.0
394.0
23.0
652.0
281.0
910.0
539.0
168.0
797.0
426.0
55.0
684.0
313.0
942.0
571.0
200.0
829.0
458.0
87.0
716.0
345.0
974.0
603.0
232.0
861.0
490.0
119.0
748.0
377.0
6.0
635.0
264.0
893.0
522.0
151.0
780.0
409.0
38.0
667.0
296.0
925.0
554.0
183.0
812.0
441.0
70.0
699.0
328.0
957.0
586.0
215.0
844.0
473.0
102.0
731.0
360.0
989.0
618.0
247.0
876.0
505.0
134.0
763.0
392.0
21.0
650.0
279.0
908.0
537.0
166.0
795.0
424.0
53.0
682.0
311.0
940.0
569.0
198.0
827.0
456.0
85.0
714.0
343.0
972.0
601.0
230.0
859.0
488.0
117.0
746.0
375.0
4.0
633.0
262.0
891.0
520.0
149.0
778.0
407.0
36.0
665.0
294.0
923.0
552.0
181.0
810.0
439.0
68.0
697.0
326.0
955.0
584.0
213.0
842.0
471.0
100.0
729.0
358.0
987.0
616.0
245.0
874.0
503.0
132.0
761.0
390.0
19.0
648.0
277.0
906.0
535.0
164.0
793.0
422.0
51.0
680.0
309.0
938.0
567.0
196.0
825.0
454.0
83.0
712.0
341.0
970.0
599.0
228.0
857.0
486.0
115.0
744.0
373.0
2.0
631.0
260.0
889.0
518.0
147.0
776.0
405.0
34.0
663.0
292.0
921.0
550.0
179.0
808.0
437.0
66.0
695.0
324.0
953.0
582.0
211.0
840.0
469.0
98.0
727.0
356.0
985.0
614.0
243.0
872.0
501.0
130.0
759.0
388.0
17.0
646.0
275.0
904.0
533.0
162.0
791.0
420.0
49.0

(1,824 characters long)

\$\endgroup\$
3
  • \$\begingroup\$ Cracked??? \$\endgroup\$
    – kennytm
    Commented Oct 16, 2015 at 13:13
  • \$\begingroup\$ @kennytm Sorry, but no. I print to STDOUT. \$\endgroup\$ Commented Oct 16, 2015 at 15:47
  • \$\begingroup\$ @kennytm To be fair, you had my code almost exactly - I printed to STDOUT. You can still print that way with the bytes you had remaining. \$\endgroup\$ Commented Oct 17, 2015 at 0:49
1 2 3
4
5
7

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.