VIN: Проверка контрольной суммы

Согласно стандарту ISO 3779, который определяет структуру идентификационного номера транспортного средства (VIN), рекомендуется размещать контрольную сумму (проверочное число) в 9-ой позиции VIN. Контрольная сумма является числом, которое вычисляется по алгоритму, зависящему от значений всех остальных знаков в VIN. Ее использование предотвращает легализацию автомобилей с подделанными VIN, так как любое изменение в VIN приведет к изменению контрольной суммы. Кроме того, контрольная сумма помогает обнаруживать ошибки при ручном внесении VIN в базы данных.
Обязательное выполнение стандарта в отношении размещения контрольной суммы в 9-ой позиции VIN требуется только в США и Канаде. В связи с этим все автомобили, предназначенные для продажи на североамериканском континенте, должны содержать контрольную сумму в 9-ой позиции, которую можно проверить на соответствующей странице. В Европе это требование не является обязательным, поэтому производители часто используют 9-ую позицию VIN для обозначения дополнительных характеристик автомобиля или ставят туда фиксированный знак, например, «0» (что является популярным выбором у японских производителей) или «Z» (используется Volkswagen и Audi). Однако есть и исключения — автомобили BMW имеют идентичную структуру VIN на всех рынках сбыта.
Стоит учитывать, что если VIN содержит контрольную сумму, но автомобиль был собран по технологии крупноузловой сборки (из SKD комплекта), то VIN, который был нанесен на кузов, не является истинным VIN, а просто служит каким-то номером кузова. Завод-сборщик присваивает свой новый VIN и наносит его на дополнительной табличке на кузове. В таком случае, часто происходит замена идентификационного кода завода-изготовителя (WMI) в «старом» VIN на код этого сборщика, при этом остальные знаки от 4 до 17 остаются без изменений. Поэтому в таких VIN контрольная сумма уже не может быть корректно рассчитана — необходимо проверять «исходный» VIN.
данные VIN, от которых зависит расчёт контрольноГО СИМВОЛА
Таблица 1 — перевод символов VIN в цифровой эквивалент:
Буква | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Эквивалент | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | - | 1 | 2 | 3 | 4 | 5 | - | 7 | - | 9 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
Таблица 2 — каждый символ VIN имеет свой «вес», который зафиксирован в соответствии с порядковой позицией:
Позиция символа в VIN | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Вес | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 10 | CHK | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 |
Расчёт контрольной суммы VIN
- Переводим все «буквы» содержащиеся в VIN в цифровой эквивалент в соответствии с таблицей 1.
- Цифровой эквивалент каждого символа нужно умножить на «вес» в соответствии с его порядковым расположением в VIN (таблица 2).
- Складываем результаты произведения каждого символа VIN (п.2.)
- Из суммы произведений каждого символа VIN и «веса» (п.3) вычисляем ближайшее целое число, кратное числу 11.
- Разница между результатом п.3 и п.4 формирует контрольный символ (если результат равен числу 10, но записывается «Х»).
- ... в 9-ой позиции VIN используется контрольная сумма, то допустимыми значениями там могут быть только цифры от 0 до 9 или буква X.
- ... в 9-ой позиции находится какой-либо другой символ, то такой VIN не пройдет проверку.
- ... контрольный сивол не прошел проверку и это VIN автомобиля, предназначенного для продажи на североамериканском рынке, то он, скорее всего, является поддельным, исходя из двух возможных причин - он был скомпрометирован при передаче с ошибками, либо номер был "позаимствован" с другого автомобиля.
Пример расчёта контрольной СИМВОЛА для VIN 5N1BT3AB0PC673814
Позиция VIN | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Проверяемый VIN | 5 | N | 1 | B | T | 3 | A | B | 0 | P | C | 6 | 7 | 3 | 8 | 1 | 4 |
п. 1 | Переводим все "буквы" содержащиеся в VIN в цифровой эквивалент в соответствии с таблицей 1. | ||||||||||||||||
5 | 5 | 1 | 2 | 3 | 3 | 1 | 2 | CHK | 7 | 3 | 6 | 7 | 3 | 8 | 1 | 4 | |
п. 2 | Цифровой эквивалент каждого символа нужно умножить на "вес" в соответствии с его порядковым расположением в VIN (таблицей 2). | ||||||||||||||||
5 x 1 | 7 x 5 | 6 x 1 | 5 x 2 | 4 x 3 | 3 x 3 | 2 x 1 | 10 x 2 | CHK | 9 x 7 | 8 x 3 | 7 x 6 | 6 x 7 | 5 x 3 | 4 x 8 | 3 x 1 | 2 x 4 | |
40 | 35 | 6 | 10 | 12 | 9 | 2 | 20 | CHK | 63 | 24 | 42 | 42 | 15 | 32 | 3 | 8 | |
п.3 | Складываем результаты произведения каждого символа VIN | ||||||||||||||||
40 + 35 + 6 + 10 + 12 + 9 +2 +20 + 63 + 24 + 42 + 42 + 15 + 32 + 3 + 8 = 363 | |||||||||||||||||
п.4 | Из суммы произведений каждого символа VIN и "веса" (п.3) вычисляем ближайшее целое число, кратное числу 11. | ||||||||||||||||
363 : 11 = 363 | |||||||||||||||||
п.5 | Разница между результатом п.3 и п.4 формирует контрольный символ | ||||||||||||||||
363 - 363 = 0 ----- контрольный символ = "0" |
В результате проверки мы получаем значение равное «0», которое совпадает с значением девятого символа проверяемого VIN → проверка пройдена.