카드 BIN 이란? (룬 알고리즘)

컴공생의 코딩 일기·2025년 3월 11일

회사 공부

목록 보기
7/7

카드 BIN

카드 BIN은 Bank Identification Number 의 준말로 처음 6개 숫자를 의미한다. BIN에는 카드 발급사, 발급 국가, 등급, 종류 정보가 포함되어 있다.

  • 처음 4자리: 카드 브랜드(네트워크) 고유 번호
  • 5~6번째 숫자: 카드를 발급한 금융기관 코드

카드 브랜드 고유 번호 종류

  • JCB, 아메리칸 익스프레스, 다이너스 클럽: 3
  • 비자: 4
  • 마스터: 5
  • UnionPay, 비씨 글로벌: 6
  • 현금카드: 0, 1, 8
  • 국내 전용: 9

국내 전용 카드는 국가 전용 식별 번호인 9로 시작하고, 대한민국의 국가번호인 410이 따라온다. 그러나 9410으로 시작하는 카드번호가 모두 소진되면서 자연스럽게 국내 전용 카드는 9로 시작하는 규칙만 지키게 되었다. 9로 시작하는 카드를 국내에서 발급받았다면 해외 결제는 불가능하며, 해외에서 발급된 카드와 번호가 같을 수 있다.

카드 7~15자리 의미

BIN 다음으로 이어지는 아홉 자리 숫자는 각 카드 발급사의 규칙에 따라 임의로 결정된다.

16번째 숫자 의미

마지막 16번째 숫자는 입력한 카드번호가 올바른 번호인지 검증하는 수단이다. 마지막 자리 숫자에 룬 공식(LUHN Formula)이라는 계산법을 적용해서 카드 리더기나 키보드 입력 시 카드 번호가 올바른지 판단한다.

카드 번호의 마지막 16번째 숫자만으로는 보안상 위험할 수 있기 때문에, 카드 뒷면에는 추가적인 보안 코드인 CVC(또는 CVV) 번호가 존재한다. 또한, CVC 번호의 3자리 역시 카드 번호 16자리를 기반으로 생성된다.

Luhn Check Digit

Luhn 알고리즘

Luhn 알고리즘(룬 알고리즘)은 신용카드, 직불카드, 주민등록번호 같은 숫자 코드의 유효성을 검사하는 알고리즘이다. 카드 번호의 마지막 자리(check digit)는 앞의 숫자들을 특정 방식으로 변환하고 합산하여 계산된다.

즉, 카드 번호의 마지막 숫자(check digit)는 Luhn 알고리즘을 이용해 검증할 수 있도록 생성된 숫자이다.

Luhn 알고리즘 작동 원리

Luhn 알고리즘은 다음과 같은 단계를 거쳐 유효성을 검증한다:

  1. 가장 오른쪽 숫자부터 시작해서 짝수 번째에 해당하는 자릿수에 2를 곱한다.
  2. 만약 2를 곱한 수가 9 이상일 경우 각각의 자릿수의 값을 더한다.
  3. 가장 오른쪽 숫자부터 시작해서 홀수 번째에 해당하는 숫자들은 그냥 그대로 둔다.
  4. 모든 값을 더한 뒤 10으로 나눈 나머지가 0 이면 유효한 값이다.

Luhn 알고리즘 예시

예: 79927398713

  1. 오른쪽에서 왼쪽으로 숫자를 확인: 7 9 9 2 7 3 9 8 7 1 3
  2. 오른쪽에서부터 짝수 위치에 있는 숫자를 두 배로 변환
    • 7, (92=18 -> 1+8=9), 9, (22=4), 7, (32=6), 9, (82=16 -> 1+6=7), 7, (1*2=2), 3
    • 결과: 7, 9, 9, 4, 7, 6, 9, 7, 7, 2, 3
  3. 모든 자리 숫자를 더함 7 + 9 + 9 + 4 + 7 + 6 + 9 + 7 + 7 + 2 + 3 = 70
  4. 총합 70이 10으로 나누어떨어지므로 이 번호는 유효한 번호라고 판단
profile
더 좋은 개발자가 되기위한 과정

0개의 댓글