Tool to generate/decrypt Barcode 93. Code 93 is a barcode standard for alphanumeric data encoding made for improving barcode 39 using 3 black bands on 9 bits.
Barcode 93 - dCode
Tag(s) : Character Encoding, Image Processing
dCode is free and its tools are a valuable help in games, maths, geocaching, puzzles and problems to solve every day!
A suggestion ? a feedback ? a bug ? an idea ? Write to dCode!
Barcode 93 format can encode the same characters as Barcode 39, i.e. 43 characters: 26 capital letters, 10 numbers and 7 special characters (-, ., $, /, + , %, ⌴ (space) as well as * which is also used to note the beginning and the end of the barcode. However, it uses 4 other special characters noted ($), (/), (+), (%) which are used only in its extended code 93 variant.
Each character is coded on 9 elements and includes 3 black bars (of different thickness). All characters always start with a black band and alternate white and black.
Here is the character mapping table:
0 | 100010100 | 1 | 101001000 | 2 | 101000100 | 3 | 101000010 |
---|---|---|---|---|---|---|---|
4 | 100101000 | 5 | 100100100 | 6 | 100100010 | 7 | 101010000 |
8 | 100010010 | 9 | 100001010 | A | 110101000 | B | 110100100 |
C | 110100010 | D | 110010100 | E | 110010010 | F | 110001010 |
G | 101101000 | H | 101100100 | I | 101100010 | J | 100110100 |
K | 100011010 | L | 101011000 | M | 101001100 | N | 101000110 |
O | 100101100 | P | 100010110 | Q | 110110100 | R | 110110010 |
S | 110101100 | T | 110100110 | U | 110010110 | V | 110011010 |
W | 101101100 | X | 101100110 | Y | 100110110 | Z | 100111010 |
- | 100101110 | . | 111010100 | ⌴ | 111010010 | $ | 111001010 |
/ | 101101110 | + | 101110110 | % | 110101110 | * | 101011110 |
($) | 100100110 | (/) | 111011010 | (+) | 111010110 | (%) | 100110010 |
A complete 93 barcode begins with * and ends with 2 control characters followed by a final *.
A variant of barcode 93 allows the 128 ASCII values to be coded using the 4 special characters '($) ¹', '(/) ²', '(+) ³', '(%) ⁴' as a prefix.
Code 93 | ASCII Code | Code 93 | ASCII Code | Code 93 | ASCII Code | Code 93 | ASCII Code |
---|---|---|---|---|---|---|---|
⁴U | 0 | ¹A | 1 | ¹B | 2 | ¹C | 3 |
¹D | 4 | ¹E | 5 | ¹F | 6 | ¹G | 7 |
¹H | 8 | ¹I | 9 | ¹J | 10 | ¹K | 11 |
¹L | 12 | ¹M | 13 | ¹N | 14 | ¹O | 15 |
¹P | 16 | ¹Q | 17 | ¹R | 18 | ¹S | 19 |
¹T | 20 | ¹U | 21 | ¹V | 22 | ¹W | 23 |
¹X | 24 | ¹Y | 25 | ¹Z | 26 | ⁴A | 27 |
⁴B | 28 | ⁴C | 29 | ⁴D | 30 | ⁴E | 31 |
⌴ | 32 | ²A | 33 | ²B | 34 | ²C | 35 |
$ | 36 | % | 37 | ²F | 38 | ²G | 39 |
²H | 40 | ²I | 41 | ²J | 42 | + | 43 |
²L | 44 | - | 45 | . | 46 | / | 47 |
0 | 48 | 1 | 49 | 2 | 50 | 3 | 51 |
4 | 52 | 5 | 53 | 6 | 54 | 7 | 55 |
8 | 56 | 9 | 57 | ²Z | 58 | ⁴F | 59 |
⁴G | 60 | ⁴H | 61 | ⁴I | 62 | ⁴J | 63 |
⁴V | 64 | A | 65 | B | 66 | C | 67 |
D | 68 | E | 69 | F | 70 | G | 71 |
H | 72 | I | 73 | J | 74 | K | 75 |
L | 76 | M | 77 | N | 78 | O | 79 |
P | 80 | Q | 81 | R | 82 | S | 83 |
T | 84 | U | 85 | V | 86 | W | 87 |
X | 88 | Y | 89 | Z | 90 | ⁴K | 91 |
⁴L | 92 | ⁴M | 93 | ⁴N | 94 | ⁴O | 95 |
⁴W | 96 | ³A | 97 | ³B | 98 | ³C | 99 |
³D | 100 | ³E | 101 | ³F | 102 | ³G | 103 |
³H | 104 | ³I | 105 | ³J | 106 | ³K | 107 |
³L | 108 | ³M | 109 | ³N | 110 | ³O | 111 |
³P | 112 | ³Q | 113 | ³R | 114 | ³S | 115 |
³T | 116 | ³U | 117 | ³V | 118 | ³W | 119 |
³X | 120 | ³Y | 121 | ³Z | 122 | ⁴P | 123 |
⁴Q | 124 | ⁴R | 125 | ⁴S | 126 | ⁴T | 127 |
⁴X | 127 | ⁴Y | 127 | ⁴Z | 127 |
The decryption of Code 93 consists in the binary reading of the black and white bands (usually via a laser barcode scanner) then in their translation via the coding table.
Example: A message 101011110 100001010 101000010 101011110 translates '* 93 *'
Double checksum is missing in this example
Code 93 uses two characters named C and K for the checksum.
Step 1: Associate with each character of the barcode the value of its position in the coding table (starting from 0)
Step 2: Multiply the value found in step 1 by its position in the message starting from the end (starting from 1)
Step 3: Add all the values found and calculate the result modulo 47.
Step 4: Add this character at the end of the barcode.
Do these steps twice, the first time to find C and the second time to find K.
Barcode 93 has a classic graphic form (black and white lines) or a binary representation (noted with 1 or B for black bars and 0 or W for white bars).
The barcode has a variable length. It begins and ends with the character * or 101011110.
dCode retains ownership of the "Barcode 93" source code. Except explicit open source licence (indicated Creative Commons / free), the "Barcode 93" algorithm, the applet or snippet (converter, solver, encryption / decryption, encoding / decoding, ciphering / deciphering, breaker, translator), or the "Barcode 93" functions (calculate, convert, solve, decrypt / encrypt, decipher / cipher, decode / encode, translate) written in any informatic language (Python, Java, PHP, C#, Javascript, Matlab, etc.) and all data download, script, or API access for "Barcode 93" are not public, same for offline use on PC, mobile, tablet, iPhone or Android app!
Reminder : dCode is free to use.
The copy-paste of the page "Barcode 93" or any of its results, is allowed (even for commercial purposes) as long as you credit dCode!
Exporting results as a .csv or .txt file is free by clicking on the export icon
Cite as source (bibliography):
Barcode 93 on dCode.fr [online website], retrieved on 2024-12-19,