Barcode Challenge

barcode_challenge

This morning we logged into Google to find a Barcode instead of the normal logo (how strange that Google would change their graphic!). Apparently today is the anniversary of the Barcode. This method of easily labeling items for computer scanning is used for every type of commodity in our society. But do you know how to get the cryptic information back out of the Barcode?

Here’s the challenge:  The image at the top of the post was created by the devious writers here at Hack a Day. Leave us a comment that tells us what the message says and explains how you deciphered it. There are programs that will do this for you and some smartphones can do this from a picture of the code, but we’re looking for the most creative solutions.

The winner will be decided in a totally unfair and biased way and gets their name plastered all over Hack a Day (and possibly slandered a bit).  So get out there and start decoding that machine-readable image.

Update: We’ve announced a winner for this challenge.

184 thoughts on “Barcode Challenge

  1. [Code 128 barcode]

    [Start Code B]hackaday.com – hacking since 2004H[end]

    … where the H at the end is the check code, so the real message is:

    hackaday.com – hacking since 2004

    Decoded by hand by loading the image into Photoshop, zooming in to 800%, turning on a 1-pixel grid, and counting pixels. Used the character chart at http://www.adams1.com/128table.html to translate.

  2. I have an AML MT7800 Bar code Reader on my desk as I have to scan material in and out from my desk. I simply pointed at the computer screen, wiggled it about until it spit out “hackaday.com – hacking since 2004” in my inventory control system, surprisingly though, I get an Asset not found error!?!?!

  3. Raw text hackaday.com – hacking since 2004
    Raw bytes (Not applicable)
    Barcode format CODE_128
    Parsed Result Type TEXT
    Parsed Result hackaday.com – hacking since 2004

    i didn’t do anything creative, but i did it anyway. i winz?

  4. I’ve implemented a lot of bar code printing software (built from scratch) for the company that currently employs me. Most of it has been Code3of9 or Code128. This was obviously a Code128 bar code, and since I was interested in doing things the hard way, here’s how I did it:

    I copied the JPG into MS Paintbrush. I cropped it down to 1 row and then expanded the canvas so that I could have some scratch space below. Then I quickly went through the image while typing down ones and zeros in Notepad++, with a one corresponding to a black pixel and a zero corresponding to a white pixel.

    Result: 11010010000100110000101001011000010000101100110000100101001011000010000100110100101100001101101111010011001110100001011001000111101011110111010110110011001001101110011011001100100110000101001011000010000101100110000100101000011010011000010100100110100001101100110010111100100100001101001100001010010000101100101100100001101100110011001110010100111011001001110110011001001110110001010001100011101011

    Next I took this string of ones and zeros and broke it up into blocks of 11 digits. Then I looked at each of the 11 digits and determined the run-length of each one and zero, writing them afterwards, like so:

    11010010000 = 211214
    10011000010 = 122411
    10010110000 = 121124
    10000101100 = 141122
    11000010010 = 241211
    10010110000 = 121124

    Next I consulted the Wikipedia page and did a search for each of these 6 digit numbers, which resulted in something like this:

    11010010000 = 211214 = startB
    10011000010 = 122411 = h
    10010110000 = 121124 = a
    10000101100 = 141122 = c
    11000010010 = 241211 = k
    10010110000 = 121124 = a

    I ended up with the following string string:

    hackaday.com – hacking since 2004

    With a startB code at the beginning, a check digit value of 40 (“H”), and a stop symbol with the extra double thick bar on the end.

    It was a pretty easy process and reinforced my understanding of the symbology… but next time I’m just going to use a scanner! ;-)

    (Reference: http://en.wikipedia.org/wiki/Code_128)

  5. I used the good ole pen and paper method. I am out in the middle of the ocean with too much time on my hands. I found that if you didn’t go binary and used a 4 character black/white method marking every 6th character it went a little faster. Eliminating the start and stop characters as well as the checksum I got “hackaday.com – hacking since 2004”

    It was fun. I wish I could post the pics of my scratch sheet. It is awesome.

  6. it reads “nothing to see here – keep moving″

    obviously the letters were stretched beyond recognition and rotated to a top down viewpoint.

    I copied them into my “demo” version of a 3D rendering program and kept rotating and squishing until I got it to make sense.

  7. First we fed the image into an FBI mainframe from my roaming command center in the back of a delivery truck painted to look like a pest control van. We used the waveform generators to create a subspace field giving the exact width of each line in the barcode from the radiation signature left from the difference between black and white output from the computer monitor.

    We then used the RF interference produced by a CRT monitor to transfer the image to a CIA decoding server farm and ran several tests. In the end, it just came down to saying “enhance, enhance, enhance” while repeatedly zooming in on the retina of someone looking at the barcode. After cleaning up the image using secret technology developed by nasa using swedish technology and ancient chinese secrets, we were able to decode the message by pressing the big red “decode” button.

    “hackaday.com – hacking since 2004H”

  8. I started trying to read it in my head (I used to work a REALLY boring factory job that used barcodes to identify everything), but after getting “hac____.” I figured the first word was hackaday.com.

    Then i got a headache and ran off to find a barcode scanner.

    The funny thing is, I couldn’t honestly tell you what encoding it is or anything like that, I just used to sit and try to teach myself to read the labels at work during long machine cycles.

  9. I copied the image into Paint.NET, turned on 1 pixel grid, cropped the image to 1 pixel height, then wrote the binary values in notepad. Then I used a binary to text converter I found online. Here is the code from notepad.
    0100001001101000011000010110001101101011011000010110010001100001011110010010111001100011011011110110110100100000100101100010000001101000011000010110001101101011011010010110111001100111001000000111001101101001011011100110001101100101001000000011001000110000001100000011010001001000

  10. Well, I didn’t decode it, however, were I at work the way I WOULD have decoded it would be to pull it up on screen and scan it. And for all you people who say that can’t be done… you are straight up wrong. If using an LCD monitor, it is possible to scan a barcode directly from the screen(saves plenty of paper when setting up scanners)

  11. wrote a simple java program to process the jpg.

    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.IOException;

    import javax.imageio.ImageIO;

    public class Main {
    public static void main(String[] args) throws IOException {

    BufferedImage image = ImageIO.read(new File(“image.jpg”));

    boolean start = true;
    int w = image.getWidth();
    int h = image.getHeight();
    int count = 0;
    int half = h / 2;
    int rMask = 0x00FF0000;
    int gMask = 0x0000FF00;
    int bMask = 0x000000FF;
    int charCount = 0;
    int[] pix = new int[w * h];
    image.getRGB(0, 0, w, h, pix, 0, w);
    int prev = 0;
    String code = “”;
    StringBuilder res = new StringBuilder();
    for (int i = half * w; i > 16;
    int g = (pix[i] & gMask) >> 8;
    int b = (pix[i] & bMask);
    if (r < 128 && g < 128 && b < 128) {
    color = 1;
    } else {
    color = 0;
    }
    if (color != prev) {
    if (start) {
    start = false;
    charCount = 0;
    } else {
    code += Integer.toString(count);
    charCount++;
    if (charCount % 6 == 0) {
    res.append(CodeMap.cMap.get(code));
    code = "";
    charCount = 0;
    }
    }
    count = 1;
    } else {
    ++count;
    }
    prev = color;
    }
    System.out.println(res);
    }
    }

    code map was a generated HashMap using awk and http://en.wikipedia.org/wiki/Code_93

  12. Nice challenge!

    Just decoded the ean128 code (hackaday.com – hacking since 2004) using a recognition software for mobile phones I developed. Quite charming is the fact that the software works also on older phones like the Nokia 6630 model, which is also on the market since 2004. :-)

    Best,
    Robert

  13. “Well first i took the picture of the bar code and printed it out, then ran over to my local Walmart and gave it to the checker to scan, she said ” oh this no good.” and then MAGICALLY “hackaday.com – hacking since 2004” popped up on the price reader. i took out a handy pen i bought there just for this occasion and wrote down the code. which i quickly typed into my iphone when i got in my car so i wouldnt lose it. i then went to the post office and mailed my phone with code to my house. First class none the less. i received it and now i am quickly typing in the code. not only was it unconventional. it cost me 9 hours of miss phone calls and $1.29 for the pen and stamp. =)

  14. i know this isnt a hack or anything, but i couldnt care less.
    i really liked that it got most people thinking and actively contributing – more stuff like this on HaD!!

  15. I think I used the oldest hardware to get the answer…
    I used a 1991 Handheld Product Laser Wand.
    Code 128 “hackaday.com – hacking since 2004″
    Mine too had the H for the checksum…

  16. hackaday.com – hacking since 2004

    I first printed out the barcode poster size at my local kinkos. I then flew to Pakistan where I spent weeks infiltrating the Al Qaeda network. Once I had gained their confidence, I was chosen to to film an Osama Bin Laden video. I secretly placed the poster of the barcode in the background before filming. Once filming was complete and I had the tape in hand, I dropped a hand grenade and ran for my life. I immediately mailed the tape to a major news outlet and began my trek back to America. While trying to cross the boarder into Afghanistan, I was picked up by US troops. After spending three years in Gitmo, I was released without charge. I rushed home to find out if the intelligence community had decoded the barcode in the tape. To my chagrin, I found the tape in my mailbox with “insufficient postage” stamped on it. Ashamed and tired, I asked my father who works for a barcode scanner company what the barcode says.

  17. hackaday.com – hacking since 2004

    I did it by hand…I’ve been reading barcodes for close to 30 years now. It started with me recognizing the checksum digits and then I learned to compute them and now can pretty much read them if I try.

  18. I am actually a cyborg and didn’t even need to copy it. I had trouble figuring out the challenge since EAN128 is my native reading language. It didn’t make much sense to me that this was even a challenge. I had to use babelfish to translate all the English text to EAN128 and I had trouble replying because babelfish doesn’t go back from EAN128 to English text very well either. Sigh…it’s a rough life being a cyborg…so many challenges!

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.