Паспортные данные - это персональная информация. Она нужна, чтобы идентифицировать человеке.
Но как их хранить, что с ними делать, кому давать доступ?
Это очень часто становится развилкой в организации хранения данных.
А пока подписывайся на мой канал На связи: SQL Там я публикую посты про особенности и нюансы SQL. Этот канал про то, как не бояться баз данных, понимать, что такое JOIN, GROUP BY и почему NULL ≠ 0.
Его я веду с нуля подписчиков.
Разбор частых ошибок и задачи по накопительной сумме уже в канале.
Присоединяйся!
Паспорт - это не просто набор цифр.
Это ключ к человеку: по нему можно понять, кто он, где живёт, какие услуги получал и что с ним происходило в системе.
Именно поэтому вокруг паспортных данных всегда много вопросов:
Можно ли хранить паспорт в базе данных?
Почему иногда по паспорту делают JOIN?
Почему в одних системах паспорт виден полностью, а в других — нет?
Паспорт это не просто набор цифр.
Это ключ к человеку: по нему можно понять, кто он, где живёт, какие услуги получал и что с ним происходило в системе.
Именно поэтому вокруг паспортных данных всегда много вопросов:
Можно ли хранить паспорт в базе данных?
Почему иногда по паспорту делают JOIN?
Почему в одних системах паспорт виден полностью, а в других — нет?
В идеальном мире паспортные данные:
Хранятся в базе данных
Да, это важно сразу проговорить -
👉 паспорт всё равно лежит в БД, иначе с ним просто невозможно работать.
Но не в открытом виде
Это значит:
Доступны только тем, кому действительно нужно
Например:
пользователю в личном кабинете
сотруднику KYC / поддержки
системе проверки документов
В реальных системах ID клиента — не всегда надёжен.
два разных client_id
но один и тот же паспорт
👉 И это прямой сигнал:
это один и тот же человек
Поэтому в некоторых случаях:
Тогда почему паспорт нельзя просто зашифровать и забыть?
Потому что с паспортом делают проверки и сравнения.
«Этот паспорт уже есть в системе?»
«Этот человек уже проходил идентификацию?»
«Это новый клиент или старый?»
Если просто заменить паспорт на набор звёздочек: **** ****** - с ним не возможно напрямую работать
Поэтому часто используют подход:
Когда паспорт виден в явном виде
Да, такие случаи есть. И они нормальны, если соблюдены условия.
1️⃣ Личные кабинеты пользователей
Это допустимо, потому что:
2️⃣ Банковские и финтех-системы
3️⃣ CDI и KYC-системы
Почему аналитики обычно не видят паспорт
Поэтому в аналитических базах:
👉 Это снижает риск утечек и ошибок.
В некоторых слоях хранения данных, паспорт хранится в виде хэша. Но надо помнить, что хэш ≠ шифрование
Хэширование - это дорога в одну сторону.
Есть еще метод шифрования и при его использование можно восстановить данные, если есть ключ.
Хэш не подходит, если паспорт нужно:
Хэш не подходит, если паспорт нужно:
Но тогда где хранится настоящий паспорт?
В реальных системах обычно два уровня хранения:
1️⃣ Паспорт в зашифрованном виде
хранится в БД
может быть расшифрован
доступ есть только:
2️⃣ Хэш паспорта - для связей и аналитики
👉 Аналитик работает с хэшом
👉 Операционная система - с зашифрованным паспортом
Почему нельзя хранить только хэш?
нельзя показать паспорт пользователю
нельзя исправить ошибку
нельзя передать данные в гос-сервис
нельзя провести ручную проверку
Хэш отвечает только на вопрос:
Но не отвечает на вопрос:
«А что именно там написано?»
Можно ли «достать паспорт из хэша»?
Нет.
И если кто-то говорит, что «у нас хэшируется, но при необходимости мы восстанавливаем» -
👉 значит это не хэш, а шифрование.
В моем канале На связи: SQL все простыми словами и с конкретными примерами.
Подписывайся!