신용카드 번호 검사기
개발Luhn 체크섬으로 카드 번호를 검증하고 발급사(Visa, Mastercard, Amex, UnionPay, Discover)를 식별합니다. 모두 브라우저에서만 처리됩니다.
원격 URL은 가져오지 않습니다. JSON을 직접 붙여넣으세요.
- 브랜드
- Luhn 검사
- 길이
이 페이지에서
카드 번호 검사기란?#
결제 카드 번호(PAN, Primary Account Number)는 무작위 문자열이 아닙니다. 선행 숫자는 발급사를 식별하는 BIN 접두입니다(Visa는 4로 시작, Mastercard는 51–55 또는 2221–2720 등). 전체 길이는 브랜드마다 좁은 대역에 들며, 마지막 숫자는 전체 번호가 Luhn 알고리즘을 만족하도록 계산된 체크 디지트입니다. 검사기는 이 세 신호를 분리해 내어 임의의 숫자 문자열이 잘 구성되었는지 — 실제 발급된 결제 가능한 카드인지가 아니라 — 알려 줍니다.
이 페이지는 정확히 그것을 전적으로 브라우저에서 합니다. 숫자를 입력하거나 붙여넣으면 BIN 접두에서 브랜드를 식별하고, 숫자를 읽기 쉬운 4그룹으로 포맷하며, Luhn 체크섬을 실행하고, 길이를 그 브랜드가 실제로 쓰는 것에 대해 점검합니다. 결제 폼을 만들 때(필드 수준 검증이 실제 BIN 규칙과 일치하는가?), Luhn이 어떻게 동작하는지 배울 때, 또는 테스트 픽스처를 건전성 검사할 때 손을 뻗는 도구입니다.
실제 카드 번호는 절대 입력하지 마세요. 테스트 PAN(결제 게이트웨이가 샌드박스용으로 공개한 것)이나 학습을 위해 직접 만든 숫자를 쓰세요. 여기서 모든 것은 로컬로 동작하며 전송되는 것은 없지만, 모든 PAN을 민감하게 취급하는 것이 올바른 습관입니다.
사용 방법#
- 입력 위의 개인정보 보호 알림 을 읽습니다. 번호가 브라우저를 떠나지 않음을 확인합니다.
- 카드 번호 필드에 숫자를 입력하거나 붙여넣습니다. 공백, 대시, 점, 문자는 자동으로 벗겨집니다.
4111-1111 1111.1111을 붙여넣어도4111111111111111로 읽힙니다. - 예제 로 잘 알려진 Visa 테스트 PAN을 불러오거나, 지우기 로 재설정합니다.
- 결과 카드를 읽습니다.
- 판정 줄은 번호가 잘 구성되었는지 말합니다.
- 브랜드 배지 는 감지된 발급사(Visa, Mastercard, American Express, Discover, UnionPay) 또는 BIN 접두가 일치하는 것이 없을 때 “알 수 없음”을 보여 줍니다.
- 그룹 표시 는 4개 단위로 포맷된 숫자를 보여 주며, 복사 준비 완료.
- 세 개의 점검 행은 브랜드, Luhn 검사(통과/실패), 길이(범위 내/범위 초과)를 분리해 보고하여, 평평한 “유효하지 않음” 대신 어느 규칙이 실패했는지 알게 합니다.
주요 기능#
- 처음부터 구현된 Luhn 체크섬. 1960년대부터 카드가 실어 온 같은 알고리즘. 숫자를 오른쪽에서 왼쪽으로 걸고, 하나 걸 하나를 두 배로 하고, 합하고, 10으로 나누어 떨어지는지 점검. 끝의 체크 디지트가 한 자리 오타를 항상 실패하게 만듭니다.
- 5개 브랜드의 BIN 접두 감지. Visa, Mastercard, American Express, Discover, UnionPay를 우선순위 순으로 일치시켜
6으로 시작하는 브랜드(Discover 6011/65 대 UnionPay 62)가 충돌하지 않게 합니다. - 브랜드별 길이 점검. Amex는 15자리, Visa는 13 또는 16, Discover와 UnionPay는 16~19. 적용되는 길이 규칙은 감지된 브랜드의 것이며, 접두를 알 수 없으면 일반 12–19 범위로 폴백합니다.
- 로케일 안전 숫자 정규화. 아랍-인도(٤١١١), 페르시아, 데바나가리, 벵골, 전폭(123) 숫자 글리프가 모두 검증 전에 ASCII 0–9로 음차되어, 사용자의 입력 방식이나 로케일에 관계없이 같은 PAN이 검증됩니다.
- 표시용 4자리 그룹화. 16자리 PAN은
4111 1111 1111 1111이 되고, 15자리 Amex는 친숙한3782 8224 6310 005(4-4-4-3)가 됩니다. - 엄격히 로컬. 백엔드도 네트워크 요청도 없습니다. PAN은 메모리에서 처리되어 같은 키 입력에 결과 카드로 렌더링됩니다.
사용 예#
예제 를 클릭해 정규 Visa 테스트 PAN을 불러오거나, 4111 1111 1111 1111을 입력합니다. 결과 카드는 다음을 읽습니다.
verdict Valid
brand Visa
grouped 4111 1111 1111 1111
Luhn pass
length ok (16 digits)
이제 어색한 간격의 American Express 테스트 PAN을 시도합니다 — 3782 822463 10005를 붙여넣습니다. 도구는 공백을 벗기고 37 접두에서 Amex를 감지해 Amex 자체 그룹으로 다시 포맷합니다.
verdict Valid
brand American Express
grouped 3782 8224 6310 005
Luhn pass
length ok (15 digits)
마지막으로, Visa 번호의 한 자리를 4111 1111 1111 1112로 바꿉니다. 브랜드와 길이는 여전히 괜찮지만 Luhn이 실패합니다 — 그리고 도구는 어느 점검이 깨졌는지 숨기지 않고 명시적으로 말합니다.
verdict Invalid
brand Visa
grouped 4111 1111 1111 1112
Luhn fail
length ok (16 digits)
이 분리는 폼을 디버깅할 때 중요합니다. 실패한 Luhn은 오타를, 실패한 길이는 잘못된 브랜드나 잘린 붙여넣기를 가리킵니다.
FAQ#
”유효”는 카드가 실제로 동작한다는 뜻인가요?#
아닙니다. “유효”는 번호가 잘 구성되었음만 뜻합니다. 접두가 알려진 브랜드에 매핑되고, 길이가 그 브랜드에 맞고, Luhn을 만족합니다. 카드가 발급되었는지, 활성인지, 자금이 있는지에 대해서는 아무것도 말하지 않습니다. 이것을 형식 점검으로 취급하세요. 받은편지함이 존재하는지 모르면서 이메일 형태를 검증하는 것과 같은 방식으로.
왜 Luhn은 모든 한 자리 오타를 잡나요?#
체크섬이 교대 숫자를 두 배로 하는 방식 때문입니다. 한 자리를 바꾸면 합이 10의 배수가 아닌 양만큼 이동하고, 인접한 두 자리를 바꾸는 것도 Luhn이 감지하는 방식으로 합을 바꿉니다(하나의 좁은 예외 제외). 인간이 키패드에서 하는 타이핑 실수를 잡기 위해 정확히 설계되었습니다.
붙여넣은 번호에 비 라틴 숫자가 있습니다. 여전히 동작하나요?#
네. 검사기는 다른 것을 하기 전에 아랍-인도, 페르시아, 데바나가리, 벵골, 전폭 숫자 글리프를 ASCII로 음차합니다. 그래서 ٤١١١은 4111로 취급됩니다. 이는 로케일과 입력 방식을 가로질러 검증을 일관되게 유지하며, 표시되는 “그룹 표시” 형태는 항상 ASCII 숫자를 씁니다.
어떤 카드 브랜드가 인식되나요?#
공개된 BIN 접두 범위로 Visa, Mastercard, American Express, Discover, UnionPay. 어느 것도 일치하지 않는 접두(예: 1 또는 9로 시작)의 번호는 “알 수 없음” 브랜드를 보고하지만, 길이가 일반 12–19 범위 안에 있고 Luhn이 통과하면 여전히 잘 구성된 것으로 보고됩니다. 다섯 모델링된 브랜드 중 하나가 아닐 뿐입니다.