Bankir.Ru
11 декабря, воскресенье 14:59

Объявление

Свернуть
Пока нет объявлений.

Алгоритм генерации номера карты

Свернуть
X
  • Фильтр
  • Время
  • Показать
Очистить всё
новые сообщения

  • Алгоритм генерации номера карты

    Суть проблемы такова:
    Кассир ПВН ошибся в 1 цифре в номере карты, регистрируя вручную операцию выдачи наличных в ресстре операций обменника (Банк использует собственное программное обеспечение). Возможно ли банку получить алгоритм оперативной проверки правильности забитого кассиром вручную номера карты? Или этим никто некогда с нами не поделится? Сам склоняюсь к последнему...

    С уважением,
    Валерий
    Nothing personal, just doing my job...

  • #2
    знаю есть прога которая только последнию цифру вычисляет
    про другие не знаю
    а в Инете не пробовали искать?

    Комментарий


    • #3
      Валера
      Ищем по инету алгоритм вычисления Luhn кода. И радостно им пользуемся.
      Этот алгоритм совершенно открытый и реализации его на разных языках море.
      Verba volant, scripta manent.

      Комментарий


      • #4
        Попробуйте посмотреть здесь:
        http://www.beachnet.com/~hstiles/cardtype.html
        С уважением,
        Владимир

        Комментарий


        • #5
          Всем спасибо! нашёл...
          Nothing personal, just doing my job...

          Комментарий


          • #6
            Код:
            -- 
            --  LUHN's formula-credit card number validation/generate
            --
            -- table indicates card type, prefix, length and algo for known cards
            ----------------
            -- CARD TYPE....................Prefix.........Length..Check digit algorithm
            --
            -- MASTERCARD...................51-55..........16......mod 10
            -- VISA.........................4..............13,16...mod 10
            -- AMEX.........................34,37..........15......mod 10
            -- Diners Club/Carte Blanche....300-305,36,38..14......mod 10
            -- Discover.....................6011...........16......mod 10
            -- enRoute......................2014,2149......15......any
            -- JCB..........................3..............16......mod 10
            -- JCB..........................2131,1800......15......mod 10
            --===========================================================================
            --
            if object_id('dbo.Luhn_Check') is not NULL drop procedure Luhn_Check
            go
            
            create procedure Luhn_Check (@s varchar(20) )
            --Luhn's formula-credit card number validation
            AS 
                BEGIN 
                DECLARE @i int, @j int, @k int, @tmp int, @result bit
                SET @result=0
                IF @s IS NULL 
                	GOTO lblFail
                IF len(@s)=0 
                	GOTO lblFail
                SET @i=1
                WHILE @i=len(@s)
                	BEGIN
                	IF ISNUMERIC(substring(@s,@i,1))=0
                		GOTO lblFail
                	SET @i=@i+1
                	END
            
                SET @j=0
                SET @k=0
                SET @i=len(@s)
                WHILE @i>0
                	BEGIN
                	IF @i>1
                		BEGIN
                		SET @tmp=(ASCII(substring(@s,@i-1,1))-48)*2
                		IF @tmp>9
                			SET @j=@j+@tmp-9
                		ELSE
                			SET @j=@j+@tmp
                		END
                	SET @k=@k+(ASCII(substring(@s,@i,1))-48)
                	SET @i=@i-2
                	END
                SET @j=(@j+@k) % 10
                IF @j=0
                	SET @result=1
                lblFail:
                if @result=1 print @s+' -VALID'  else print @s+' -INVALID'
            END
            go
            Последний раз редактировалось Artem K; 03.12.2003, 09:55.

            Комментарий


            • #7
              bantik
              ????
              Спасибо конечно, а на еще более забавном диалекте алгоримта нет?
              В сети есть описаниесамого алгоритма, что достаточно. Выкладывать тут одну из реализаций (причем весьма сомтительную) было СОВЕРШЕННО излишне.
              Verba volant, scripta manent.

              Комментарий


              • #8
                И ничего забавного - это обычный SQL (а где же еще верифицировать). А в столбик его так прикольно форум выстроил - в оригинале была табуляция.

                Что касается алгоритма - то не мне напоминать - что тут история как и с CRC - кто то считает с нулевого байта, кто то от 1, кто-то инвертирует результат - а кто-то нет. Посмотри повнимательнее ГОСТ Р 50809-95 или ИСО/МЭК 7812

                У меня в коллекции добрый десяток таких алгоритмов с открытых источников - на реальных картах работает только один :-))

                Комментарий


                • #9
                  bantik
                  Тогда я подправлю твой пост. При необходимости не следует игнорировать возможности vB кода
                  Verba volant, scripta manent.

                  Комментарий

                  Пользователи, просматривающие эту тему

                  Свернуть

                  Присутствует 1. Участников: 0, гостей: 1.

                  Обработка...
                  X