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.
Says “hackaday.com – hacking since 2004”
I printed it out on my office’s Color LaserJet 9500mfp then scanned it with my Rooted G1 Android phone using ixMat Barcode Scanner.
I wrote a small Ruby script to parse the image.
http://gist.github.com/204304
Got the 128 codes from Wikipedia: http://en.wikipedia.org/wiki/Code_128
“hackaday.com – hacking since 2004”
I was a little disappointed by this one, even a QR barcode would have been harder. At least I would have needed to hookup my webcam then! ;)
Oh, and of course the result is:
hackaday.com – hacking since 2004H
I aked my kindegarder to google it, she did, she is great.
“code 128
Hackaday.com hacking since 2004h
.015 seconds
(95,317), (95,139),
(493,139), (493,317)”
as you can see i can’t speel
[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.
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!?!?!
I printed the code, then I pasted it over the bar code of a Jolt Cola in the super market and then got the cashier to scan it for me.
LOOOOOL
I used Wiki-how and it showed me…well how.
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?
hackaday.com – hacking since 2004
I read other people’s comments. Do I win?
Its says “hackaday.com – hacking since 2004”
cause that’s what everyone else is saying :)
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)
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.
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.
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”
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.
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
printed… scanned with a hacked cue-cat but failed to read the code :(
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)
My prediction is the winner will somehow involve an arduino, twitter, and steampunk fashion
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
hackaday.com – hacking since 2004
hackaday.com – hacking since 2004
Just plug a bar code scaner in to my pc. Clicked in the search area and clicked the button on the scaner.
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
“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. =)
hackaday.com – hacking since 2004
i used the thing
http://www.datasymbol.com/barcode-recognition-sdk/barcode-reader/online-barcode-decoder.html
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!!
ring ring ring ring
she said:Hello “hackaday.com – hacking since 2004”
…
Social Engineering since 1962, for the win.
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…
It says “hackaday.com – hacking since 2004″, this was really easy to decode too. All I had to do was look in the comments!
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.
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.
Heh, I work for a company that sells cash registers. I just scanned it with a usb hand held scanner :p How uncreative can you get?
you really need to use an Arduino to do this (with ethernet shield and publish it to twitter).
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!
“hackaday.com – hacking since 2004″
To be honest i can read it like a book. It takes about a minute a word for me though
Where’s my Staples button. Seriously? Using one of the super common codes?
hackaday.com – hacking since 2004
Symbol scanner after printing.
I used my iphone and downloaded the barcode decoder from CYDIA!!!!I LOVE OPEN SOURCE!!!
hackaday.com – hacking since 2004
“hackaday.com – hacking since 2004″
I decoded it by looking at the first few comments on the post
What does it say? That’s easy: 666
JetCityOrange.com/barcodes/666/
hackaday.com – hacking since 2004
I’m a robot…. from the future.
http://bit.ly/AoNjX
That’s me
Good job, sheeple.
hackaday.com – hacking since 2004
I work at an office max and instead of working i read the hack a day blog, and I used the barcode scanner from our POS to read ir.
I threw together a small python-script:
http://pastebin.org/39156
And got the output:
hackaday.com – hacking since 2004H
Since the H obviously only is a check digit, the answer to this challenge is:
“hackaday.com – hacking since 2004”
hackaday.com – hacking since 2004
I used a :Cue:Cat, hacked to allow plaintext decoding, and modified to read directly off my CRT.
01234567094987654321
Copy And Paste. What everyone else said.