Здравейте,
тръгнах да пиша скриптче за проверка на IBAN и имам един въпрос относно частта за прилагане на mod-97.
В Уикипедия (http://en.wikipedia.org/wiki/IBAN) е записано:
1. Take the first 8 digits.
2. Perform a modulus calculation on those.
3. Append the next six digits to the result on step 2.
4. Repeat steps 2 and 3 until there are no more digits to append.
т.е. винаги го прилагат върху 8 цифри, докато тук http://www.morfoedro.it/doc.php?n=219&lang=en - всеки получен остатък се прилага върху следващите 8, т.е. получават се 10 цифри. Примерът е за Италия, те имат по дълъг IBAN, не знам дали е затова.
Ако някой може да ми помогне:)
Валидация на IBAN
Правила на форума
Натисни тук за да прочетеш Правилата на форума
Натисни тук за да прочетеш Правилата на форума
Re: Валидация на IBAN
http://www.bnb.bg/bnb/home.nsf/vPages/P ... 4_V3.2.pdf
по-конкретно точка 6
Каква е стандартната структура на IBAN?
IBAN представлява последователност от буквени и цифрени знаци за еднозначно международно идентифициране на банкова сметка на клиент.
Всяка страна, въвела IBAN стандарта, определя специфична форма и дължина в съответствие с IBAN изискванията. В различните страни IBAN има различна дължина.
IBAN може да съдържа до 34 знака:
· Първите 2 знака винаги са код на държавата съгласно ISO стандарт и идентифицират страната, в която се поддържа сметката.
· Следващите 2 знака винаги са контролни числа, които служат за валидиране точността на въвеждане на IBAN.
· Последната част от IBAN съдържа местна информация, различна за отделните държави, която служи за идентифициране на сметката на клиента в страната, където се поддържа сметката (примерно банков идентификационен код или идентификационен клиринг номер на финансовата институция, вид и номер на клиентска сметка).
Как се калкулира контролната сума и как се валидира IBAN?
Контролната сума се соновава на стандарта ISO 7064 mod 97-10, където остатъка трябва да е 1.
Стъпките за валидация на IBAN са следните:
1. Проверява се дължината на IBAN за съответната страна. Ако дължината не отговаря - IBAN е невалиден.
2. Преместват се началните 4 символа в края.
3. Всички букви се заменят с числа, независимо от това, че дължината на номера ще се промени. Замяната става като следва: A се заменя с 10, B с 11 и т.н. до Z което се заменя с 35.
4. Получения стринг се третира като цяло число е се прилага mod-97 (делене на 97).
Ако остатъка от деленето е 1, IBAN номера е валиден.
Калкулирането на контролната сума става по следния начин:
1. Проверява се дължината на IBAN за съответната страна. Ако дължината не отговаря - IBAN е невалиден.
2. На мястото на контролната сума се поставя 00 (например BG00 за България).
3. Преместват се началните 4 символа в края.
4. Всички букви се заменят с числа, независимо от това, че дължината на номера ще се промени. Замяната става като следва: A се заменя с 10, B с 11 и т.н. до Z което се заменя с 35.
5. Получения стринг се третира като цяло число е се прилага mod-97 (делене на 97).
6. От 98 се изважда остатъка от горното делене. Ако резултата е една цифра се добавя водеща нула.
по-конкретно точка 6
Каква е стандартната структура на IBAN?
IBAN представлява последователност от буквени и цифрени знаци за еднозначно международно идентифициране на банкова сметка на клиент.
Всяка страна, въвела IBAN стандарта, определя специфична форма и дължина в съответствие с IBAN изискванията. В различните страни IBAN има различна дължина.
IBAN може да съдържа до 34 знака:
· Първите 2 знака винаги са код на държавата съгласно ISO стандарт и идентифицират страната, в която се поддържа сметката.
· Следващите 2 знака винаги са контролни числа, които служат за валидиране точността на въвеждане на IBAN.
· Последната част от IBAN съдържа местна информация, различна за отделните държави, която служи за идентифициране на сметката на клиента в страната, където се поддържа сметката (примерно банков идентификационен код или идентификационен клиринг номер на финансовата институция, вид и номер на клиентска сметка).
Как се калкулира контролната сума и как се валидира IBAN?
Контролната сума се соновава на стандарта ISO 7064 mod 97-10, където остатъка трябва да е 1.
Стъпките за валидация на IBAN са следните:
1. Проверява се дължината на IBAN за съответната страна. Ако дължината не отговаря - IBAN е невалиден.
2. Преместват се началните 4 символа в края.
3. Всички букви се заменят с числа, независимо от това, че дължината на номера ще се промени. Замяната става като следва: A се заменя с 10, B с 11 и т.н. до Z което се заменя с 35.
4. Получения стринг се третира като цяло число е се прилага mod-97 (делене на 97).
Ако остатъка от деленето е 1, IBAN номера е валиден.
Калкулирането на контролната сума става по следния начин:
1. Проверява се дължината на IBAN за съответната страна. Ако дължината не отговаря - IBAN е невалиден.
2. На мястото на контролната сума се поставя 00 (например BG00 за България).
3. Преместват се началните 4 символа в края.
4. Всички букви се заменят с числа, независимо от това, че дължината на номера ще се промени. Замяната става като следва: A се заменя с 10, B с 11 и т.н. до Z което се заменя с 35.
5. Получения стринг се третира като цяло число е се прилага mod-97 (делене на 97).
6. От 98 се изважда остатъка от горното делене. Ако резултата е една цифра се добавя водеща нула.
- luciuz
- Мнения: 919
- Регистриран на: Пет 11 юни 2004 11:15
- Автомобил:
- Двигател:
- Местоположение: София
- Контакти:
Re: Валидация на IBAN
VWGT написа: 5. Получения стринг се третира като цяло число е се прилага mod-97 (делене на 97).
това всичкото съм го направил, интересува ме самото прилагане (точка 5 от поста ти) - след първата група от 8 цифри, всяка следваща е остатък + 6 или остатък + 8
Re: Валидация на IBAN
неразбрах точно какъв ти е коментара (не съм програмист бтв ), тази 5-та стъпка е от точка 6.2 на пдф файла, която се занимава с калкулирането на контролната сума, а не с валидацията, валидацията е описана в т. 6.1 от пдф файла (ако дължината е ок за БГ стандарта и деленето на 97 дава остатък 1 всичко е ок).
По-добре гледай пдф-а, защото това, което съм го пейстнал е нещо като превод на файла, който превод бях намерил отдавна преди да намеря самия пдф. В пдф-а има даден конкретен пример.
По-добре гледай пдф-а, защото това, което съм го пейстнал е нещо като превод на файла, който превод бях намерил отдавна преди да намеря самия пдф. В пдф-а има даден конкретен пример.
- luciuz
- Мнения: 919
- Регистриран на: Пет 11 юни 2004 11:15
- Автомобил:
- Двигател:
- Местоположение: София
- Контакти:
Re: Валидация на IBAN
VWGT написа:По-добре гледай пдф-а, защото това, което съм го пейстнал е нещо като превод на файла, който превод бях намерил отдавна преди да намеря самия пдф. В пдф-а има даден конкретен пример.
примерът не върши работа, защото не показва как точно се дели стринга при прилагане на mod-97
Реших проблема като взех няколко истински IBAN-а и си играх докато излязат. Решението е мод97 на 8+(2 цифри остатък +8)+(2 цифри остатък +8)+(2 цифри остатък +8) .... = 1
Върни се в “ОФФ-Топик - други”
Кой е на линия
Потребители, разглеждащи този форум: Google [Bot] и 236 госта