PHP

Как хранить номер карты в базе данных?

Может их хешировать, зашифровывать или хранить в чистом виде? (Номер карты используется при дальнейших покупок)
как вариант создай 2 столбца
crd_hash - хранит начальную часть карты без последних 4 символов (её хешируем в несколько хешей и дехещируем в обработчике также можно сделать перестановку символов для хранения в бд)
crd_uid хранит последние 4 цифры карты

Пользователю выводит только тип платёжной системы mir visa mastercard и т.п
и номер карты в формате ***************2023

при таком раскладе утечка бд не будет критичной
Ромка Поддубко
Ромка Поддубко
7 589
Лучший ответ
хэширование имеет смысл только для проверки, потому что это - одностороннее преобразование.
Шифрование внутри базы данных ничего не дает, потому что нужно ограничивать доступ к самой базе данных (чтобы посторонние физически не могли туда влезть). А если есть шифрование, значит, есть и ключ к этому шифру и он хранится не у держателя этой карты (потому что это не имеет смысла), а где-то на сервере, значит, может быть похищен вместе с базой данных.
За утечку пользовательских данных можно огрести кучу проблем, поэтому в реальном проекте подумайте, а оно Вам на самом деле нужно?
Б.
Берик ..........
72 563
Алексей Головачев Я сказал "(Номер карты используется при дальнейших покупок)" только для примера чтобы было проще понять, номер я делаю рефиральную систему и чтобы переводить деньги партнёрам мне нужно хранить их номера
Так же как всю важную инфу. В зашифрованном виде.
Виктор Кротов
Виктор Кротов
92 809
Просто так их хранить нельзя. Нужно для начала получить какие то сертификационные документы о том что платёжные системы доверяют тебе их хранить. Иначе можно нарваться на неприятности. То есть придётся соблюсти их требования по данному вопросу. Какие конкретно - это надо у них уточнять
YO
Yerzhan Orynbassarov
37 180
Алексей Головачев Запрещено хранить полные данные