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. Any algorithm for the "Barcode 93" algorithm, applet or snippet or script (converter, solver, encryption / decryption, encoding / decoding, ciphering / deciphering, breaker, translator), or any "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.) or any database download or API access for "Barcode 93" or any other element are not public (except explicit open source licence like Creative Commons). Same with the download for offline use on PC, mobile, tablet, iPhone or Android app.
Reminder: dCode is an educational and teaching resource, accessible online for free and for everyone.
The content of the page "Barcode 93" and its results may be freely copied and reused, including for commercial purposes, provided that dCode.fr is cited as the source.
Exporting the results is free and can be done simply by clicking on the export icons ⤓ (.csv or .txt format) or ⧉ (copy and paste).
To cite dCode.fr on another website, use the link:
In a scientific article or book, the recommended bibliographic citation is: Barcode 93 on dCode.fr [online website], retrieved on 2025-04-24,