Печально
кода проверки в открытом доступе есть где просмотреть
на подобии кода PHP код:
ПОРЯДОК РАСЧЕТА И ПРОВЕРКИ
КОНТРОЛЬНОГО КЛЮЧА В НОМЕРЕ ЛИЦЕВОГО СЧЕТА
В соответствии с принятой структурой номера лицевого счета Банк
России разъясняет порядок расчета контрольного ключа.
1. Номер лицевого счета должен включать в себя контрольный ключ,
обеспечивающий возможность проверки правильности номера лицевого счета
при автоматизированной обработке документов.
2. Для расчета контрольного ключа в номере лицевого счета
используется совокупность двух реквизитов - условного номера РКЦ (или
кредитной организации) и номера лицевого счета.
X 1-ый разряд кода валюты
X ---------------------------
X │ контрольный ключ
X │ ------------------
X │ │
А Б В Г Д Е Ж З И К Л М Н О П Р С Т У Ф Х Ц Ш
--T-- -------------------T-------------------------------
│ │
│ │ Номер лицевого счета
│ L------------------------
│
│ Условный номер РКЦ или кредитной организации
L----------------------------------------------
3. Значение условного номера РКЦ соответствует разрядам 5 и 6
девятизначного банковского идентификационного кода (БИК); условный
номер РКЦ дополняется слева нулем до трех разрядов.
4. Значение условного номера кредитной организации соответствует
разрядам 7, 8 и 9 БИК.
5. Контрольный ключ рассчитывается на основе приписываемых
каждому разряду весовых коэффициентов:
А Б В Г Д Е Ж З И К Л М Н О П Р С Т У Ф Х Ц Ш
------------------------------------------------------------
7 1 3 7 1 3 7 1 3 7 1 3 7 1 3 7 1 3 7 1 3 7 1
6. В случае использования в номере счета алфавитно-цифрового
значения кода клиринговой валюты первый разряд этого кода (И),
заданный алфавитным значением, заменяется на соответствующую цифру:
А- 0, В - 1, С - 2, Е - 3, Н - 4, К - 5, М - 6, Р - 7, Т - 8, Х - 9.
Любая другая буква в данном разряде является ошибкой. В качестве букв
могут использоваться символы кириллицы и соответствующие им по
написанию латинские буквы, которые могут набираться как на верхнем,
так и на нижнем регистре. 7. На основе весовых коэффициентов
рассчитывается сумма произведений отдельных разрядов на свой весовой
коэффициент без учета контрольного ключа, который принимается равным
нулю ( М=0 ):
А * 7 + Б * 1 + В * 3 + Г * 7 + Д * 1 + Е * 3 + Ж * 7 + З * 1 +
И * 3 + К * 7 + Л * 1 + 0 * 3 + Н * 7 + О * 1 + П * 3 + Р * 7 +
С * 1 + Т * 3 + У * 7 + Ф * 1 + Х * 3 + Ц * 7 + Ш * 1
8. Младший разряд полученной суммы умножается на весовой
коэффициент контрольного ключа (т.е. на 3).
9. Младший разряд полученного произведения принимается в качестве
значения контрольного ключа.
Примеры расчета контрольного ключа
1. Пример расчета контрольного ключа в лицевом счете клиента
кредитной организации, сформированного с использованием цифрового кода
валюты
Условный номер кредитной организации 7 4 6
Весовые коэффициенты соответствующих разрядов 7 1 3
Номер лицевого счета с нулевым значением
контрольного ключа 30101 002 0 0000 3100000
Весовые коэффициенты 71371 371 3 7137 1371371
Рассчитывается сумма произведений отдельных разрядов на свой
весовой коэффициент без учета контрольного ключа (М=0)
7 * 7 + 4 * 1 + 6 * 3 + 3 * 7 + 0 * 1 + 1 * 3 + 0 * 7 + 1 * 1 +
0 * 3 + 0 * 7 + 2 * 1 + 0 * 3 + 0 * 7 + 0 * 1 + 0 * 3 + 0 * 7 +
3 * 1 + 1 * 3 + 0 * 7 + 0 * 1 + 0 * 3 + 0 * 7 + 0 * 1 = 104
Младший разряд равен 4. Умножая его на 3, получаем 4 * 3=12.
Младший разряд полученного произведения (2) и будет являться
значением контрольного ключа. В результате номер лицевого счета будет
равен 30101 002 2 0000 3100000.
Правильность расчета контрольного ключа осуществляется
обязательным повторным расчетом суммы произведений разрядов на
приписанные им весовые коэффициенты с учетом полученного значения
контрольного ключа:
7 * 7 + 4 * 1 + 6 * 3 + 3 * 7 + 0 * 1 + 1 * 3 + 0 * 7 + 1 * 1 +
0 * 3 + 0 * 7 + 2 * 1 + 2 * 3 + 0 * 7 + 0 * 1 + 0 * 3 + 0 * 7 +
3 * 1 + 1 * 3 + 0 * 7 + 0 * 1 + 0 * 3 + 0 * 7 + 0 * 1 = 110
В результате получилось число, кратное 10 (младший разряд равен
0), что подтверждает правильность расчета.
2. Пример расчета контрольного ключа в лицевом счете клиента РКЦ,
сформированного с использованием алфавитно-цифрового кода валюты
Условный номер РКЦ X 0 0 5
Весовые коэффициенты соответствующих разрядов 7 1 3
Номер лицевого счета с нулевым значением
контрольного ключа 30101 В84 0 0000 2900000
Заменяем букву В соответствующей ей цифрой (1) и получаем:
Номер лицевого счета с преобразованным
значением первого разряда кода валюты 30101 184 0 0000 2900000
Весовые коэффициенты 71371 371 3 7137 1371371
Рассчитываем сумму произведений отдельных разрядов на свой
весовой коэффициент без учета контрольного ключа (М=0)
0 * 7 + 0 * 1 + 5 * 3 + 3 * 7 + 0 * 1 + 1 * 3 + 0 * 7 + 1 * 1 +
1 * 3 + 8 * 7 + 4 * 1 + 0 * 3 + 0 * 7 + 0 * 1 + 0 * 3 + 0 * 7 + 2 *
1 + 9 * 3 + 0 * 7 + 0 * 1 + 0 * 3 + 0 * 7 + 0 * 1 = 132
Младший разряд равен 2. Умножая его на 3, получаем 2 * 3=6.
Младший разряд полученного произведения (6) и будет являться
значением контрольного ключа. В результате номер лицевого счета с
учетом представления первого разряда исходного кода клиринговой валюты
в виде цифры будет равен
30101 184 6 0000 2900000
Правильность расчета контрольного ключа проверяется обязательным
повторным расчетом суммы произведений разрядов на приписанные им
весовые коэффициенты с учетом полученного значения контрольного ключа:
0 * 7 + 0 * 1 + 5 * 3 + 3 * 7 + 0 * 1 + 1 * 3 + 0 * 7 + 1 * 1 +
1 * 3 + 8 * 7 + 4 * 1 + 6 * 3 + 0 * 7 + 0 * 1 + 0 * 3 + 0 * 7 +
2 * 1 + 9 * 3 + 0 * 7 + 0 * 1 + 0 * 3 + 0 * 7 + 0 * 1 = 150
В результате получилось число, кратное 10 (младший разряд равен
0), что подтверждает правильность расчета. Таким образом, с учетом
первоначального значения кода клиринговой валюты номер лицевого счета
будет равен
30101_В84_6_0000_2900000.