Алгоритм Луна

Страницы: 1 ...  4 5  ОТВЕТИТЬ НОВАЯ ТЕМА
papan111 29 окт 2025 в 12:48
Ярила  •  На сайте 8 лет
0
Цитата (frost43 @ 29.10.2025 - 11:29)
Там вроде понятно написано, что удваивается каждая Вторая цифра.

Удваивается каждая нечётная цифра.

Проверил свои карточки. Всё так и есть, получается в каждом случае сумма, кратная 10.


***хотя в карточке на видео получается контрольная сумма 75, то есть на 10 не делится why.gif

Это сообщение отредактировал papan111 - 29 окт 2025 в 12:56
SSS123 29 окт 2025 в 12:54
Приколист  •  На сайте 17 лет
0
ТС выдал базу. ))
А вот основа нашего общения здесь. С контрольной суммой. ))

Алгоритм Луна

Это сообщение отредактировал SSS123 - 29 окт 2025 в 12:55
ФеномАнален 29 окт 2025 в 13:01
Хохмач  •  На сайте 9 лет
-1
class CardValidator : ValidatorNew<String> {

override fun validate(value: String): Pair<Boolean, ValidationError?> {
if (value.length != 12 && value.length != 16)
return false to ValidationError.MUST_EQUAL_LENGTH

if (value.any { !it.isDigit() })
return false to ValidationError.INVALID_CHARACTERS

val digits = value.map { it.digitToInt() }
val checksum = digits.reversed().mapIndexed { index, digit ->
if (index % 2 == 1) {
val doubled = digit * 2
if (doubled > 9) doubled - 9 else doubled
} else {
digit
}
}.sum()

if (checksum % 10 != 0)
return false to ValidationError.INVALID_FORMAT

return true to null
}
}
maximus20727 29 окт 2025 в 13:04
Ярила  •  На сайте 12 лет
0
О! Помехоустойчивое кодирование!

Это сообщение отредактировал maximus20727 - 29 окт 2025 в 13:04
Dima2022 29 окт 2025 в 13:06
Ярила  •  На сайте 4 года
0
Цитата (zz77zz @ 29.10.2025 - 14:17)
товарищи, выкладывайте свои карты, буду проверять

Обратную сторону тоже?
Lenovatan 29 окт 2025 в 13:07
Виноградный велосипед  •  На сайте 10 лет
0
Ну полезно. Я левые карты на сайт фотошопа вводила, чтобы 30 дней теста получить (генеративная заливка), так он мне все карты сбрыкивал. Теперь понятно почему
Goodcitizen 29 окт 2025 в 14:12
Я вам Димон  •  На сайте 12 лет
-1
Пиздёшь! У меня последняя цифра ноль
Расходимся, нас опять наебали fuck.gif
SSgood 29 окт 2025 в 14:19
Ярила  •  На сайте 15 лет
0
Если и итоговое число не делится на 10 без остатка!!! Даже тут умудрился обосраться?!! 75/10=7.5

Размещено через приложение ЯПлакалъ
Голгофский 29 окт 2025 в 14:28
Ярила  •  На сайте 6 лет
0
Карты,карты

Алгоритм Луна
taper 29 окт 2025 в 15:30
Ярила  •  На сайте 11 лет
0
Любопытно, нахрена эта информация?
Когда в 1990-е генерили номера кредиток, чтобы в интернете от AOL модемом несколько часов посидеть - да, это имело какое-то практическое значение. lol.gif
А сейчас нахрена? Информационная значимость отрицательная.

Это сообщение отредактировал taper - 29 окт 2025 в 15:31
vanonik 29 окт 2025 в 16:08
Ярила  •  На сайте 14 лет
0
Цитата (taper @ 29.10.2025 - 15:30)
Любопытно, нахрена эта информация?
Когда в 1990-е генерили номера кредиток, чтобы в интернете от AOL модемом несколько часов посидеть - да, это имело какое-то практическое значение.  lol.gif
А сейчас нахрена? Информационная значимость отрицательная.

вот сунул ты карту в чужой банкомат, что железяка должна делать?
1. Узнать, к какой системе привязана карта (виза, матеркард и т.д.), чтобы понимать, как дальше с ней общаться.
2. Узнать какой банк держатель карты (опять же из номера карты), чтобы по нужному протоколу запросить баланс в банке и не накосячить, выдав сумму, сверх лимита.
3. Узнать номер счета в банке, чтобы не списать бабки с левого чувака.

Вот это всё в номере карты и есть.

Это сообщение отредактировал vanonik - 29 окт 2025 в 16:09
AleXXX82 29 окт 2025 в 16:11
Статус заблокирован  •  На сайте 10 лет
0
Цитата (ФеномАнален @ 29.10.2025 - 13:01)
class CardValidator : ValidatorNew<String> {

override fun validate(value: String): Pair<Boolean, ValidationError?> {
if (value.length != 12 && value.length != 16)
return false to ValidationError.MUST_EQUAL_LENGTH

if (value.any { !it.isDigit() })
return false to ValidationError.INVALID_CHARACTERS

val digits = value.map { it.digitToInt() }
val checksum = digits.reversed().mapIndexed { index, digit ->
if (index % 2 == 1) {
val doubled = digit * 2
if (doubled > 9) doubled - 9 else doubled
} else {
digit
}
}.sum()

if (checksum % 10 != 0)
return false to ValidationError.INVALID_FORMAT

return true to null
}
}

Ты порчу навел?
Василий75 29 окт 2025 в 16:16
Ярила  •  На сайте 11 месяцев
1
Спасибо за подсказку, теперь с легкостью подберу номер карты, чтобы служба безопасности банка не очковала и не переспрашивала.
vanonik 29 окт 2025 в 16:17
Ярила  •  На сайте 14 лет
0
Цитата (Goodcitizen @ 29.10.2025 - 14:12)
Пиздёшь! У меня последняя цифра ноль
Расходимся, нас опять наебали fuck.gif

значит предыдущие дают целый десяток.
Что не так?
tupik 29 окт 2025 в 16:47
Ярила  •  На сайте 13 лет
0
Цитата (zz77zz @ 29.10.2025 - 12:17)
товарищи, выкладывайте свои карты, буду проверять

и три цифры с обратной стороны, т.к. в видео не всёё до конца рассказали...
gigi.gif
taper 29 окт 2025 в 16:49
Ярила  •  На сайте 11 лет
0
Цитата (vanonik @ 29.10.2025 - 16:08)
Цитата (taper @ 29.10.2025 - 15:30)
Любопытно, нахрена эта информация?
Когда в 1990-е генерили номера кредиток, чтобы в интернете от AOL модемом несколько часов посидеть - да, это имело какое-то практическое значение.  lol.gif
А сейчас нахрена? Информационная значимость отрицательная.

вот сунул ты карту в чужой банкомат, что железяка должна делать?
1. Узнать, к какой системе привязана карта (виза, матеркард и т.д.), чтобы понимать, как дальше с ней общаться.
2. Узнать какой банк держатель карты (опять же из номера карты), чтобы по нужному протоколу запросить баланс в банке и не накосячить, выдав сумму, сверх лимита.
3. Узнать номер счета в банке, чтобы не списать бабки с левого чувака.

Вот это всё в номере карты и есть.

Чууувааак! lol.gif
У меня для тебя хреновые новости.
1. Эта инфа интересна тем кто пишет узкоспециализированный софт для отмирающих уже потихоньку банковских карт. Типа платежных шлюзов в интернете, банкоматов. Хотя нет, не интересна. Те кто этим занимаются, знают такие вещи на уровне букваря и еще джуниорами впитали это знание с молоком сеньора или даже миддла.
2. Здесь описан только первый, самый примитивный слой логики проверки карты. Которого уже не достаточно вообще ни для чего, разве что для запуска следующего слоя. В 1990-е системы еще не умели реально связываться в онлайн-режиме с банками, поэтому была изрядная задержка (иногда - часы) между применением этого алгоритма и отлупом уже от следующего. Поэтому логика этого алгоритма хоть как-то была ценна. А сейчас все работает онлайн и если у тебя реально нет денег на счету, оплата не пройдет, и даже это не достаточное условие.

Я этот алгоритм знаю, потому что мы по нему в 90-е генерили левые номера кредитных карт, которые подсовывали сервису AOL, чтобы получить доступ к инету. Через какое-то время система врубалась что номер фейковый, и отрубала. Генерили новый. Сейчас все это уже бессмысленно.

Это сообщение отредактировал taper - 29 окт 2025 в 16:57
sochirand 29 окт 2025 в 16:53
Ярила  •  На сайте 13 лет
2
Цитата (про100имя @ 29.10.2025 - 12:20)
Прикольно придумали. Не знал

Что - то подобное используется в каждом обычном EAN (13 значный штрих код практически на любом товаре в магазине). Только там немного другой алгоритм. В любом случае, - там тоже последняя цифра штрих кода - это контрольное число

Это сообщение отредактировал sochirand - 29 окт 2025 в 16:53
vanonik 29 окт 2025 в 17:03
Ярила  •  На сайте 14 лет
0
Цитата (taper @ 29.10.2025 - 16:49)
Цитата (vanonik @ 29.10.2025 - 16:08)
Цитата (taper @ 29.10.2025 - 15:30)
Любопытно, нахрена эта информация?
Когда в 1990-е генерили номера кредиток, чтобы в интернете от AOL модемом несколько часов посидеть - да, это имело какое-то практическое значение.  lol.gif
А сейчас нахрена? Информационная значимость отрицательная.

вот сунул ты карту в чужой банкомат, что железяка должна делать?
1. Узнать, к какой системе привязана карта (виза, матеркард и т.д.), чтобы понимать, как дальше с ней общаться.
2. Узнать какой банк держатель карты (опять же из номера карты), чтобы по нужному протоколу запросить баланс в банке и не накосячить, выдав сумму, сверх лимита.
3. Узнать номер счета в банке, чтобы не списать бабки с левого чувака.

Вот это всё в номере карты и есть.

Чууувааак! lol.gif
У меня для тебя хреновые новости.
1. Эта инфа интересна тем кто пишет узкоспециализированный софт для отмирающих уже потихоньку банковских карт. Типа платежных шлюзов в интернете, банкоматов. Хотя нет, не интересна. Те кто этим занимаются, знают такие вещи на уровне букваря и еще джуниорами впитали это знание с молоком сеньора или даже миддла.
2. Здесь описан только первый, самый примитивный слой логики проверки карты. Которого уже не достаточно вообще ни для чего, разве что для запуска следующего слоя. В 1990-е системы еще не умели реально связываться в онлайн-режиме с банками, поэтому была изрядная задержка (иногда - часы) между применением этого алгоритма и отлупом уже от следующего. Поэтому логика этого алгоритма хоть как-то была ценна. А сейчас все работает онлайн и если у тебя реально нет денег на счету, оплата не пройдет, и даже это не достаточное условие.

Я этот алгоритм знаю, потому что мы по нему в 90-е генерили левые номера кредитных карт, которые подсовывали сервису AOL, чтобы получить доступ к инету. Через какое-то время система врубалась что номер фейковый, и отрубала. Генерили новый. Сейчас все это уже бессмысленно.

Пересмотри видос, там сказано в чем информационная значимость
Unkilled 29 окт 2025 в 17:09
ненавижу всех. и точка  •  На сайте 12 лет
0
Паспорт тоже видимо какую-то систему имеет? Пробовал от балды вводить. Где-то прокатывает, а где-то сразу выдаёт что неверно.
Понравился пост? Ещё больше интересного в ЯП-Телеграм и ЯП-Max!
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии. Авторизуйтесь, пожалуйста, или зарегистрируйтесь, если не зарегистрированы.
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) Просмотры темы: 22 775
0 Пользователей:
Страницы: 1 ...  4 5  ОТВЕТИТЬ НОВАЯ ТЕМА

 
 

Активные темы



Наверх