Мне нужно скрыть или зашифровать некоторые текстовые данные в моем приложении php 5.2.
Я бы предпочел решение, в котором входная строка и выходная строка имели бы одинаковую длину.
Это не должно быть очень сильным, поскольку существует множество других уровней безопасности. Сильное было бы хорошо, но это только удержит программистов / dba / support людей / и т.д. от случайного чтения текста из базы данных.
ключевые соображения
- РЕДАКТИРОВАТЬ, ДОБАВИТЬ Я бы предпочел решение, в котором входная строка и выходная строка сохраняли бы одинаковую длину.
- только текст строки будет запутан / зашифрован для хранения в базе данных
- Приложению php потребуется сохранить данные в зашифрованном виде / зашифровать их перед сохранением базы данных, а также необходимо будет удалить / скрыть их после чтения базы данных
- это модификация существующего приложения
- только некоторые столбцы должны быть запутаны / зашифрованы
- только некоторые строки должны быть запутаны / зашифрованы, основываясь на поле Тип
- есть только несколько точек загрузки / сохранения для обработки
- максимальный размер столбца уже определен для некоторых полей, но не для других, но я бы предпочел, чтобы решение работало в рамках существующего размера ограниченных полей
- РЕДАКТИРОВАТЬ, ДОБАВИТЬ ключ, вероятно, будет составным из некоторой информации первичного ключа + не редактируемые поля
Вот пример таблицы базы данных и данных:
int char(1) varchar(24) int date
MyPrimaryKey RowType UserText UserNo DateChange
------------ ------- ------------------------ -------- ----------------
1 N nothing special here 43 6/20/2009 12:11am
2 N same thing, wow! 78 6/23/2009 1:03pm
3 S fBJKg}.jkjWfF78dlg@45kjg 43 6/25/2009 6:45am
4 N same old, same old text 21 6/25/2009 8:11am
Приложение будет загружать и отображать строки 1, 2 и 4 как обычно. Однако условно (в зависимости от типа строки) обрабатывается текст в строке 3 с использованием этой логики запутывания / шифрования и снятия запутывания / дешифрования.
Может ли кто-нибудь предоставить обфусцировать / зашифровать и не обфусцировать / расшифровать код функции, ссылки и / или указатель, которые могли бы помочь здесь?
спасибо!
EDIT
Мне нравится простая идея кодирования base64, но есть ли метод, который может держать данные в пределах фиксированного размера. Все перечисленные методы имеют выходное значение больше, чем входное значение. Это будет проблемой для некоторых столбцов, где пользователь может ввести 50 символов и он будет сохранен в столбце varchar (50).