Отказ от ответственности!
Отказ от ответственности
Сайт не несёт ответственности за содержание материалов. Все материалы сайта найдены в сети интернет. Если вы являетесь правообладателям и хотите убрать свой материал с нашего сайта, то напишите администрации. Напомним, что ваша собственность находилась в публичном доступе и только поэтому была опубликована на нашем сайте. Сайт некоммерческий, и мы не можем проверить все публикации пользователей. Используете материалы сайта на свой страх и риск, администрация за возможные последствия ответственности не несет.
Сайт не распространяет никаких программных продуктов, а содержит только ссылки на ПО, доступное в сети интернет.
Просмотр новых публикаций
Последние сообщения с форума
Джокер2 - Безумие на двоих (2024) Автор темы: kishnin81, Раздел: Кинообзор онлайн | 0 Ответов Сб 14:32 | kishnin81 | |
Дэдпул и Росомаха (2024) Автор темы: kishnin81, Раздел: Кинообзор онлайн | 0 Ответов Вт 15:59 | kishnin81 | |
Бесплатные VPS/VPDS Автор темы: kishnin81, Раздел: Прочие статьи | 7 Ответов Пн 10:11 | safonovs3f | |
Как узнать имя пользователя на удаленном компьютере Автор темы: kishnin81, Раздел: Прочие статьи | 1 Ответов Пн 10:10 | safonovs3f | |
ВТБ халявные акции за обучение Автор темы: kishnin81, Раздел: Прочие статьи | 3 Ответов Пн 10:10 | safonovs3f |
Внимание! Если Вы видите рекламму на нашем ресурсе, установите для вашего браузера расширение Adblock Plus | AdBlocker Ultimate | Блокировщик рекламы |
Мы ВКонтакте
Сообщество вконтакте
Главная страница сайта
- Загрузка... News Portal
- Загрузка... Soft Portal
- ⬦ Бесплатно прочее полезно
- ⬦ Комп для чайника
- ⬦ Халява
- Новости сайта
- Программы для ПК
- Программирование
- Статьи, заработок, Wi-Fi, прочее
- Игры для ПК, android, прочее
- Флэш игры, программы, прочее
- Книги java, txt, fb2, аудио, другое
- Всё для Photoshop и After Effects
- Веб мастеру
- Продвижение ВКонтакте
- Продвижение в других соц.сетях
- Различный софт
- F.A.Q / ЧАВО?
Статистика
Краткая статистика сайта.
Комментарии
3 последних комментариев.
Годно! Спасибо за данную тему, интересно))
Поиск по сайту
Поиск по всему сайту, форуму и тегам!
Поиск по тегам
Облако популярных тегов.
Python CC checker
Давайте сразу начнем с того, что я никогда не позиционировал себя кодером и посему, если есть претензии к коду - вперед переделай и покажи как надо в коммкнтарии.
В очередной раз посмотрев любимый русский сериал про любовь решил сделать простенький скрипт для проверки того самого СС.
Первое, что надо сделать это пойти и взять с вики алгоритм луна для проверки на валид карты. Там же есть и example на питоне поэтому ctrl+c, ctrl+v
Код
from functools import reduce
def luhn(code):
# Предварительно рассчитанные результаты умножения на 2 с вычетом 9 для больших цифр
# Номер индекса равен числу, над которым проводится операция
LOOKUP = (0, 2, 4, 6, 8, 1, 3, 5, 7, 9)
code = reduce(str.__add__, filter(str.isdigit, code))
evens = sum(int(i) for i in code[-1::-2])
odds = sum(LOOKUP[int(i)] for i in code[-2::-2])
return ((evens + odds) % 10 == 0)
Проверили? отлично! Теперь надо проверить к какому банку относится карта. Идем в гуголь находим замечательную ссылку и составляем регулярку...
так... стоп... лень ( идем на гитхаб и качаем сорцы стилера на шарпее.
Просто копипастим оттуда названия и регулярки.
Код
dig = {
'Amex Card' : '^3[47][0-9]{13}$',
'BCGlobal' : '^(6541|6556)[0-9]{12}$',
'Carte Blanche Card' : '^389[0-9]{11}$',
'Diners Club Card' : '^3(?:0[0-5]|[68][0-9])[0-9]{11}$',
'Discover Card' : '6(?:011|5[0-9]{2})[0-9]{12}$',
'Insta Payment Card' : '^63[7-9][0-9]{13}$',
'JCB Card' : '^(?:2131|1800|35\\d{3})\\d{11}$',
'KoreanLocalCard' : '^9[0-9]{15}$',
'Laser Card' : '^(6304|6706|6709|6771)[0-9]{12,15}$',
'Maestro Card' : '^(5018|5020|5038|6304|6759|6761|6763)[0-9]{8,15}$',
'Mastercard' : '5[1-5][0-9]{14}$',
'Solo Card' : '^(6334|6767)[0-9]{12}|(6334|6767)[0-9]{14}|(6334|6767)[0-9]{15}$',
'Switch Card' : '^(4903|4905|4911|4936|6333|6759)[0-9]{12}|(4903|4905|4911|4936|6333|6759)[0-9]{14}|(4903|4905|4911|4936|6333|6759)[0-9]{15}|564182[0-9]{10}|564182[0-9]{12}|564182[0-9]{13}|633110[0-9]{10}|633110[0-9]{12}|633110[0-9]{13}$',
'Union Pay Card' : '^(62[0-9]{14,17})$',
'Visa Card' : '4[0-9]{12}(?:[0-9]{3})?$',
'Visa Master Card' : '^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14})$',
'Express Card' : '3[47][0-9]{13}$'
}
'Amex Card' : '^3[47][0-9]{13}$',
'BCGlobal' : '^(6541|6556)[0-9]{12}$',
'Carte Blanche Card' : '^389[0-9]{11}$',
'Diners Club Card' : '^3(?:0[0-5]|[68][0-9])[0-9]{11}$',
'Discover Card' : '6(?:011|5[0-9]{2})[0-9]{12}$',
'Insta Payment Card' : '^63[7-9][0-9]{13}$',
'JCB Card' : '^(?:2131|1800|35\\d{3})\\d{11}$',
'KoreanLocalCard' : '^9[0-9]{15}$',
'Laser Card' : '^(6304|6706|6709|6771)[0-9]{12,15}$',
'Maestro Card' : '^(5018|5020|5038|6304|6759|6761|6763)[0-9]{8,15}$',
'Mastercard' : '5[1-5][0-9]{14}$',
'Solo Card' : '^(6334|6767)[0-9]{12}|(6334|6767)[0-9]{14}|(6334|6767)[0-9]{15}$',
'Switch Card' : '^(4903|4905|4911|4936|6333|6759)[0-9]{12}|(4903|4905|4911|4936|6333|6759)[0-9]{14}|(4903|4905|4911|4936|6333|6759)[0-9]{15}|564182[0-9]{10}|564182[0-9]{12}|564182[0-9]{13}|633110[0-9]{10}|633110[0-9]{12}|633110[0-9]{13}$',
'Union Pay Card' : '^(62[0-9]{14,17})$',
'Visa Card' : '4[0-9]{12}(?:[0-9]{3})?$',
'Visa Master Card' : '^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14})$',
'Express Card' : '3[47][0-9]{13}$'
}
Ну вот почти все готово. Осталось просто перечислить регулярки и если совпадает то вывести к какому банку это всё дело принадлежит.
Код
code = '4561 2612 1234 5467'
codeFormatter = re.sub(' ', '', code.strip())
if luhn(code):
for regex in dig:
if re.search(dig[regex], codeFormatter):
print(f'{code} - {regex}')
break
codeFormatter = re.sub(' ', '', code.strip())
if luhn(code):
for regex in dig:
if re.search(dig[regex], codeFormatter):
print(f'{code} - {regex}')
break
Готово. Теперь у нас есть полноценный код с проверкой на валид СС и проверкой к какому банку он принадлежит.
Example full
Код
import re
cardNo = '4561 2612 1234 5467'
code = ''.join(filter(str.isdigit, cardNo))
dig = {
'Amex Card' : '^3[47][0-9]{13}$',
'BCGlobal' : '^(6541|6556)[0-9]{12}$',
'Carte Blanche Card' : '^389[0-9]{11}$',
'Diners Club Card' : '^3(?:0[0-5]|[68][0-9])[0-9]{11}$',
'Discover Card' : '6(?:011|5[0-9]{2})[0-9]{12}$',
'Insta Payment Card' : '^63[7-9][0-9]{13}$',
'JCB Card' : '^(?:2131|1800|35\\d{3})\\d{11}$',
'KoreanLocalCard' : '^9[0-9]{15}$',
'Laser Card' : '^(6304|6706|6709|6771)[0-9]{12,15}$',
'Maestro Card' : '^(5018|5020|5038|6304|6759|6761|6763)[0-9]{8,15}$',
'Mastercard' : '5[1-5][0-9]{14}$',
'Solo Card' : '^(6334|6767)[0-9]{12}|(6334|6767)[0-9]{14}|(6334|6767)[0-9]{15}$',
'Switch Card' : '^(4903|4905|4911|4936|6333|6759)[0-9]{12}|(4903|4905|4911|4936|6333|6759)[0-9]{14}|(4903|4905|4911|4936|6333|6759)[0-9]{15}|564182[0-9]{10}|564182[0-9]{12}|564182[0-9]{13}|633110[0-9]{10}|633110[0-9]{12}|633110[0-9]{13}$',
'Union Pay Card' : '^(62[0-9]{14,17})$',
'Visa Card' : '4[0-9]{12}(?:[0-9]{3})?$',
'Visa Master Card' : '^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14})$',
'Express Card' : '3[47][0-9]{13}$'
}
def luhn(code):
LOOKUP = (0, 2, 4, 6, 8, 1, 3, 5, 7, 9)
evens = sum(int(i) for i in code[-1::-2])
odds = sum(LOOKUP[int(i)] for i in code[-2::-2])
return ((evens + odds) % 10 == 0)
if luhn(code):
for regex in dig:
if re.search(dig[regex], code):
print(f'{code} - {regex}')
break
Ссылки:
https://ru.wikipedia.org/wiki/Алгоритм_Луна#Python
https://en.wikipedia.org/wiki/Payment_card_number
https://coderoad.ru/72768/Как-определить-тип-кредитной-карты-по-номеру
Информация: Посетители, находящиеся в группе Гости, не могут скачивать файлы с данного сайта. |
Пароль к архивам: ComInet
Может быть интересно
Комментариев:
0
Авторизация