type of matrix barcode (trademarked name) From Wikipedia, the free encyclopedia
A QR code (quick-response code) is a type of two-dimensional matrix barcode. Japanese company Denso Wave invented it in 1994 for labelling automobile parts.[1][2]
![]() | The English used in this article or section may not be easy for everybody to understand. (November 2023) |
A QR code has a square, which contains other elements. There are black squares. These are arranged in a grid. Some of the parts are not filled, usually they are white. Some parts of the code are markers. These markers help with reading and decoding the information. Usually, the code is read by an imaging device, such as a camera. The information in the image is then decoded.
QR codes have Reed–Solomon error correction. This means that even if parts of the code cannot be decoded, or they are wrong, the code can still be used.
The required data are then extracted from patterns that are present in both the horizontal and the vertical components of the QR image.[3]
In many ways, QR codes are similar to barcodes. They can hold more information, and they also can hold different types of information:[4]
Compared to the standard barcodes, QR codes were also used for other things than labelling car parts because the image can be read more quickly, and because more information can be stored. Applications include product tracking, identifying an item, tracking time, document management, and general marketing.[3]
The amount of data that can be represented by a QR code symbol depends on the data type (mode, or input character set), version (1, ..., 40, indicating the overall dimensions of the symbol, i.e. 4 × version number + 17 dots on each side), and error correction level. The maximum storage capacities occur for version 40 and error correction level L (low), denoted by 40-L:[5][6]
Input mode | Max. characters | Bits/char. | Possible characters, default encoding |
---|---|---|---|
Numeric only | 7,089 | 31⁄3 | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 |
Alphanumeric | 4,296 | 51⁄2 | 0–9, A–Z (upper-case only), space, $, %, *, +, -, ., /, : |
Binary/byte | 2,953 | 8 | ISO/IEC 8859-1 |
Kanji/kana | 1,817 | 13 | Shift JIS X 0208 |
Here are some samples of QR codes:
QR codes use Reed–Solomon error correction. There are different levels, depening on the level, with between 7% and 30% of the data bytes missing, the code can still be read correctly:
Level L (Low) | 7% of data bytes can be restored. |
Level M (Medium) | 15% of data bytes can be restored. |
Level Q (Quartile)[7] | 25% of data bytes can be restored. |
Level H (High) | 30% of data bytes can be restored. |
In larger QR symbols, the message is broken up into several Reed–Solomon code blocks. The block size is chosen so that no attempt is made at correcting more than 15 errors per block; this limits the complexity of the decoding algorithm. The code blocks are then interleaved together, making it less likely that localized damage to a QR symbol will overwhelm the capacity of any single block.
Even though they are very useful, QR codes also have dangers: The information in the code is not human-readable. A QR code can therefore contain a link to a website which contains malware. If it is read on a smartphone, the QR code can run applications on the smartphone, or activate certain functions on the smartphone. This is a problem of all 2D-barcodes, and is not specific to QR codes.
An attack done using such QR codes, called "tags", is often called "Atagging". In 2010, there was such an attack for Android: the QR code pointed to a website that allowed to download the software ICQ; which was infected with a trojan horse, Trojan-SMS.AndroidOS.Jifake.f, This trojan sent several SMS to a premium-rate Russian service-provider.
To protect against such attacks, many apps to decode QR code display the decoded information; and the user has to actively click to open the website.
There are different extensions to the QR code: