QR-Codes -Hidden Information? Unique Codes per Generator?

Posted: January 21, 2010 by Thos003 in Marketing, SEO
Tags: , , , , , , ,

Why are they different?

If the language is the same, and the text link is the same then why are the QR-Codes Different?

I am convinced that QR-Codes are passing on more information than you realize.

While some may say that it is simply a generator difference, I am not convinced.  Each QR-Code is readable by quickmark, and apparently contains the exact same URL.  But when generating a new QR-Code from existing QR- codes the offspring is unique.  So the only conclusion we do have is that the generators are marking the code by who generated it, and subsequently the quickmark generator is passing on something from the first generator. …So far the time stamp theory has proven negative.

QR Code Generators Tested

QucikMark – iphone



Images of QR-Codes and the subsequent matings of QR-Code Generators.

We will call this one big papa as this spurred the research…

Bulwark is a Favorite Place Decal with Google Maps QR-Code

The text link generated by this QR-Code is : http://google.com/m/place?georestrict=input_srcid%3A6a8383041e7e4ce8 according to QuickMark (Big mama).  Quickmark then provides an option to re-create this QR-Code….

Recreated Googel QR-Code with Quickmark

Yes… they are different… but they carry the same url.  So Big Daddy and Big Momma are produced a new baby.

Here is Big Mama’s DNA of the same text/link as generated by big quickmark on direct input:

Typed in QR-Code

Typed into QuickMark QR-Code


So lets test the text link with an online generator… Number one in the SERP for QR-Code Generator was.. qrcode.kaywa.com

QR-Code generatede by Quick Mark of Google's QR-Code

QR-Code generated qrcode.kaywa.com by of Google's QR-Code


No surprise at this point but this is….. Different.

And now if you scan qrcode.kaywa.com (sample #1) with #QuickMark and hit the create button…

The Ugly baby of Big Momma and kaywa.com

Big Momma and kaywa.com's baby

Different… yet the same text/link…?

Next Generator on the search engine zxing.appspot.com:

SEO's desktop shot of QR-Code

QR Code Sample 3


And offspring between QuickMark and Zxing:

zxing.appspot.com QR-Code Generator and QuickMark Generator

New baby of Quick Mark and Zxing

Time stamp???? No.  Here is recreation 2 of big daddy and big momma 30 minutes apart.

Time Stamp

Twin delivered 30 minutes later.


While the intended information is the same, link/text, the QR-Codes are clearly different based on how they are generated.  It seems to me that they must be passing on additional information.  To what end or what information I cannot say.  I am not going to accuse quickmark as being the mother of all whores or Google as being the anti-christ.  Although it is amusing that if this were true.. quick “Mark” could easily be the “Mark of the Beast” if google, which is a number, is indeed the “Beast”.  How many zeros in a google???  Was that 666??? Just kidding!

Feed the beast!

Can someone give me a viable explanation as to why these QR-Codes are different?  What information is being passed on?

  1. Sean Owen says:

    The good news is there’s quite a reasonable explanation for this, and it’s nothing sinister.

    It is not at all true that the same input text results in the same QR Code. First, QR Codes have a selectable amount of error correction: level L, M, Q or H. This controls how much extra bits are used to allow for error correction. For the same input, a different EC level will result in a different code.

    QR Codes also have a notion of ‘mask pattern’ which helps regularize the distribution of black and white modules. The encoder can and should pick the one that achieves the best distribution. This also opens the possibility of different codes for the same input.

    Finally QR Code has special encoding modes for special kinds of text. For example it can encode digits in normal ‘byte mode’, or in an efficient ‘numeric mode’. Same input — different encoding — different QR Code.

    • Thos003 says:

      So you believe that the the quickmark differences are due to mask pattern, even when the input is the same… I can buy that. Thanks.

      But it still seems irregular that duplicating a QR-Code and using the same quickmark generator would produce 4 unique QR-Codes which all have the same data.

      Is it possible to recognize the generator or the heritage of recreated QR-Codes? Or is it possible that the quality level of the orginal is duplicated? Why wouldn’t the quickmark always produce the optimal QR-code for the data?

  2. Sean Owen says:

    Hmm actually you have a bit of a point, and I am surprised. The Quickmark generator actually encodes this:

    http://google.com/m/place?georestrict=input_srcid%3A6a8383041e7e4ce8 #QuickMark

    It’s actually adding an anchor info to the end of that URL! That is not cool, in my book.

    I was actually going to say earlier, well, some of these encoders are actually encoding a redirector URL that goes through their servers, things like that, and in fact that’s what’s up here, in a way.

    You can read QR codes here: http://zxing.org/w/decode.jspx to see what they really say, including raw bytes. You can use the underlying open source code if you like to dig into any property of the code you like: error correction level, mask pattern, encoding method, etc.

    Nothing says what generated it, no; there’s just no provision for hidden info, timestamps, etc. in the specifications. Even if you did something non-standard along these lines… it wouldn’t get very far since no readers would accept or do anything with it.

    So while my points stand, actually you were correct in suspecting this encoder isn’t actually encoding what you think it will.

    I can vouch for the Google encoder, in the Chart API, which was the forerunner of the encoder in ZXing (code.google.com/p/zxing) of which I am a developer. It doesn’t pull any funny business, just encodes what you tell it to.

  3. mike says:

    Hi guys, this is Mike at QuickMark. Can you tell us the exact steps of how you encoded #QuickMark into the QR Code?

    Currently #QuickMark is added to the end of URLs when end users tweet a particular URL to Twitter. If it is showing up in other places then it is likely a bug and we would like to get that fixed.

    As Sean mentioned, different encoding methods produce different looking QR Codes, even though they encapsulate the same intended information.

    We can also assure you that our QR Code generator is not adding any hidden info and would like to help clear up this misunderstanding.

    • thos003 says:

      Thanks Mike for checking in. I am not sure which QR-code he used to get the #quickmark I just rescanned all of the marks above with my iphone quickmark app to double check the info that was being created. All of your links and plain texts look to be the same.

      The settings on my Quick Mark under share are Charset UTF-8.

      The auto executes are all turned off. The data matrix for 2d is turned on.

      Again, I am surprised that even though the link being passed on is the exact same, the quickmark created 4 different looking QR-codes. I personally have not double checked Sean’s new input about the #quickmark being added.

      • mike says:

        Hello, thanks for your reply. I have not yet been able to find #QuickMark added to the barcodes I generated myself, perhaps I am missing something?

        Scanning QR Codes generated by other sources and then recreating them with QuickMark is likely to present a different looking barcode, due to the aforementioned technical mechanisms in previous posts.

        But our generator should present the same looking QR Code if the source data is the same (without changing encoding options). To confirm this, you can scan each of the QuickMark screenshots above and immediately recreated them with QuickMark, the output image should be the same as the screenshot.

        Please also feel free to check out online barcode generator at http://www.quickmark.com.tw/En/diy/?qrLink

  4. Tony King says:

    What has this got to do with pest control

    • thos003 says:

      …. Hmmm, You do have a point…. well as a marketer I’d like to be able to use QR codes, so I researched a little on QR code creation. So directly, a QR code is not going to control your pests. But since I do marketing for a pest control company, than indirectly it does. But thanks for visiting and asking your questions.

  5. Tyler says:

    Is it possible the reason for the code generating differently is because the number of reviews change? Just a thought.

  6. Erich says:

    I don’t much about coding even in the broadest sense, much less in the technical detail that you are conversant in… but my question is this:

    Is it possible to think of a qr code as a first “paver” on a potentially limitless path? The first paver (being the one in plain sight) has within it an encoded trigger which can send information (timestamps etc.) to any number of secondary pavers/urls? It would seem that if this were the case, then the pathway need not be a one-directional plunge of information, but move like capillary action beneath the surface. Are you suggesting that the observed differences could account for these types of triggers?

    Other than marketing applications, what are other potential sinister uses of such a coding matrix? (Not intended by the good folk that were part of the development, of course.)

    • thos003 says:

      I don’t think that it’s a time stamp. There was no difference when creating a QR code with the same info but at different times. It seems that the differences were based on the QR code generator. Not sure what purpose the differences would serve.

  7. dennis says:

    wow, just start viewing this page while doing my qr code generator project.
    it seems that there is a different qr codes generated EVEN with the same error correction level AND masking pattern.
    You can see from some of the image thos003 posted.
    some of the qr code generated have the same error correction level and masking pattern but it generate different QR code.
    to know about the error correction and masking pattern please refer to wiki.
    the generator i make was also make different one from all the generator from the web.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s