Мое приложение должно хранить банковские реквизиты и номера кредитных карт в базе данных. Мы поддерживаем несколько вариантов БД и стараемся по возможности избегать каких-либо специфических функций БД, которые могут быть нелегко перенести на другую.
Поэтому я ищу простой, но достаточно безопасный способ шифрования определенных полей, таких как номер карты и номер банковского счета. Приложение нуждается в них для отправки запросов во внешние платежные системы, но случайный выбор * соответствующих таблиц БД должен возвращать «мусор», чтобы кто-то не мог убежать с несколькими тысячами номеров кредитных карт.
Только наше приложение должно знать систему шифрования, эта информация не должна передаваться в (этой) зашифрованной форме любой другой системе.
У кого-нибудь есть предложения относительно простого, но безопасного способа сделать это?
Я нашел следующий вопрос / ответ , который выглядел полезным и всеобъемлющим, но я пытался выяснить, нужны ли мне все эти поля.
Я также нашел эту статью , которая, казалось, подразумевала, что IV должен генерироваться случайным образом каждый раз, когда запись вставляется / обновляется и сохраняется вместе с зашифрованным значением. Если безопаснее, то это кажется более простым, чем подход, предложенный в вопросе SO, но у меня возникают проблемы с согласованием этого с API Java.
Любые предложения приветствуются. (Я использую Java 6)