anonym.legal
Назад до блогуGDPR та відповідність

IMY Швеція: personnummer, samordningsnummer та...

Шведський personnummer кодує дату народження та стать через 10-значний номер. IMY вимагає валідації алгоритму Луна.

April 21, 20267 хв читання
Sweden IMYpersonnummer LuhnsamordningsnummerSwedish GDPR technicalNordic compliance

IMY Швеція: personnummer та GDPR

Personnummer: формат та структура

Шведський personnummer (особистий ідентифікаційний номер): YYMMDD-NNNC

  • YY: рік народження (2 цифри)
  • MM: місяць народження
  • DD: день народження
  • NNN: порядковий номер (непарний = чоловіча, парний = жіноча стать для трьох останніх цифр)
  • C: контрольна цифра (алгоритм Луна)

Для осіб старше 100 років: замість «-» використовується «+» (280101+5533 означає 1928-01-01).

Samordningsnummer: 60-зміщений день

Для тимчасових мешканців, які ще не отримали personnummer:

  • DD замінено на DD+60 (день народження 15 → 75)
  • 700101-NNNC може бути personnummer (1970-01-01) або samordningsnummer для особи, народженої 01 певного місяця

71% загальних PII-інструментів не виявляють samordningsnummer, оскільки вони не розпізнають DD > 31 як дійсний.

Валідація алгоритму Луна для personnummer

def validate_personnummer(pnr):
    # Видалити нецифрові символи
    digits = ''.join(filter(str.isdigit, pnr))[-10:]
    if len(digits) != 10:
        return False
    
    # Алгоритм Луна
    total = 0
    for i, d in enumerate(digits[:-1]):
        n = int(d) * (2 if i % 2 == 0 else 1)
        total += n - 9 if n > 9 else n
    
    return (total + int(digits[-1])) % 10 == 0

Джерела:

Готові захистити свої дані?

Почніть анонімізувати PII з 285+ типами сутностей на 48 мовах.