Created in 1994 by Toyota subsidiary 'Denso Wave' to quickly track vehicles and parts through the company's automotive manufacturing process, QR codes are used more commonly today for logging into websites or Wi-Fi networks, sharing contact information, making mobile payments or storing data for plane and train tickets on your phone.

QR codes (short for Quick Response codes) were internationally standardized in 2000 and mobile phone users in Japan had already widely adopted the technology by 2002. Although Denso Wave still holds patents over the technology, QR codes are free for anyone to use without a license fee as long as the intellectual property is being used within the defined ISO/JIS standards.

As with any other barcode, interacting with a QR code is simple enough: scan one with an image sensor such as the camera in your smartphone, the app you're using will convert the code to binary and then display the information or perform the programmed action, such as opening a website, essentially allowing real world objects to be hyperlinked to digital places.

There are countless apps dedicated to reading QR codes but many popular apps have begun integrating scanners for specific features.

In 2016 for instance, Snapchat and iMessage introduced support for QR codes as a method of adding new friends, WhatsApp uses QR codes as a quick way to access the desktop version of their chat application, and Android recently introduced similar functionality for sending SMS and MMS text messages on the PC.

What's With All the Squares?

A QR code is comprised of an array of squares, some of which are used for the image sensor to position itself (that's the large squares on three of the corners), while the rest of the cells contain version and format information as well as the data itself, of course, along with error correction coding.

Whereas most of the barcodes you come across are one-dimensional, such as UPC labels on items at the store, QR codes are two-dimensional and offer many advantages. For instance, QR codes can be scanned in any direction instead of only one, they can contain thousands of alphanumeric characters versus only a dozen or so, and when configured with a high level of error correction they are particularly capable at continuing to function after sustaining damage.

The more error correction a QR code has, the less data it can store and incidentally, the more data that is stored within a QR code, the more squares it will have. More squares are also required as the level of error correction is increased and artistic QR codes can forego data capacity for aesthetics by creating an image with some of the blocks.

Anatomy of the QR Code

An early version of the two dimensional barcode system measured only 21 x 21 modules and contained just four characters of data, while the largest current version (40) spans 177 x 177 modules and can hold 1,264 characters of ASCII text or up to up to 7,089 numerals. Information can be encoded by a variety of methods and different types of encoding can be used in the same QR code:

  • Numeric (10 bits per 3 digits)
  • Alphanumeric (11 bits per 2 characters, but can't store lowercase letters)
  • Byte (8 bits per character)
  • Kanji (13 bits per character)
  • And some more obscure modes such as FNC1 and ECI

Along with different standards for conventional QR codes, specifications for new iterations have been approved over the years, including MicroQR (11×11 modules containing as many as 35 numeric characters), iQR Code (holds 80% more data in the same space as a standard QR code), FrameQR (the one lets you create images in the QR code) and SQRC (stores public and private data, the latter of which can only be read by certain scanners).

Don't Trust Them Anywhere

While generally speaking QR codes are deemed safe to use, their most common exploit uses the URL data type to redirect users to malicious websites, for phishing purposes or by hosting executable data that exploits vulnerabilities in the client's applications (reader, web browser or image viewer).

There have been other incidents where malware has infected Android phones, for example to send costly SMS or to steal bank account information without the user ever noticing.

How to Make A QR Code

Besides smartphone apps, there are many websites dedicated to creating QR codes with varying feature sets and levels of access without registering or paying. In most instances, you simply enter information into the relevant fields and save the QR code in a file such as JPG or PNG. If you'd rather program your QR code from scratch, Thonky has a full tutorial to get you started.

QR Code Generator is the most basic we came across during a few quick searches but it's completely free and includes support for plain text, URLs, as well as contact information and the ability to send SMS messages through the QR code. You can include information in all of the fields, though again, more data results in more squares and makes it increasingly difficult for scanners to read the code.

QRStuff.com offers additional features such as the ability to link app stores, social media including Facebook (pages and likes), Instagram and LinkedIn, links to Dropbox files or folders, Google Map locations, Wi-Fi logins as well as shortcuts to send funds over PayPal and Bitcoin. However, if you want access to all of the site's features, namely the style/image editor, you'll have to pay.

While it doesn't provide the same level of functionality as QRStuff, QR-Creator.com is completely free and supports uploading custom images which can be used in the background of the QR code. The more basic the image the better off it will likely appear in the background of the QR code. Here's what it looked like when we uploaded one of the TechSpot logos:

Recommended Reads