А мне нравится идея с отпечатками. Довольно удобно, не нужно таскать с собой карту.
Я думаю, что наиболее правильно хранить такие данные в виде
хэша, как пароль. Тогда при получении доступа к БД третьи лица ничего не смогут узнать, либо процесс будет невероятно усложнён.
Пользователь прикладывает палец -> Идёт генерация цифровой подписи -> Она хэшируется и аналогичный хэш ищется в БД -> Если находится и он соответствует клиенту -> Успех, впускаем человека
При этом в самой БД в чистом виде цифровую подпись не храним, только хэшированную.
А способ генерации цифровой подписи это уже вопрос больше к коду в вашем конкретном случае.
Ещё как вариант сделать приложение на телефон и работать непосредственно с сканерами там и API для взаимодействия с ними (как это делают сбербанк, например), тем же у кого нет в телефоне сканера давать обычную карточку. Сэкономите на оборудовании.