Вы всё ещё планируете написать свой алгоритм?
Филипп, все равно скажу спасибо хотя бы за проявленный интерес. Я знаком с AES и другими методами шифрования, есть так же собственный алгоритм, переделанный из китайского с упаковщиком текста (то есть не просто шифруется, но и сжимается), а пароль содержит в себе так же и номер ячейки (ID), в которой хранится запись, причем алгоритмов создания пароля несколько. Но суть не в том. Мы зашифровали, но для того, что бы расшифровать данные, скрипт должен применить ключ. Допустим, происходит транзакция пополнения кошелька. Выполняется шифрование данных, данные помещаются в БД. Где то должен лежать ключ либо список ID=KEY, что бы его можно было быстро достать и декодировать данные, если, к примеру, клиент смотрит историю платежей. Тогда возникает та самая дилема, и даже две - где хранить ключи и как обезопасить скрипт, выдающий ключи, и как, в конце концов, не дать подделать выдачу ключа? Я ведь не буду требовать от каждого пользователя вставлять свой e-Token в технологическое отверстие...
В данном варианте мы имеем плюс в том, что данные зашифрованы хорошо (не надежно, а хорошо, ибо нет у меня доверия к АНБ и их выводам). Но вопрос в хранении ключа сводит это шифрование на нет.
Если попробовать представить, что часть пароля хранится у пользователя. К примеру, в базе у него хранится некая соль, пароль запрашивается один раз при входе в личный кабинет и хранится, к примеру, на сервере в переменной сессии. Декодер, который может храниться вместе со списком ID=KEY где то за пределами корня, получает в качестве пароля хеш соль+пароль, и отдает расшифрованные данные или выполняет транзакции. Но! Как увести сессию - мы все прекрасно знаем. Так же, если учесть, что шелл дает возможность смотреть в том числе и переменные сессии, нетрудно этот самый пароль получить, просто внедрив в код пару лишних строк. Здесь остается надеяться лишь на быстрое обнаружение измененного/добавленного файла, а это круглосуточный мониторинг и зарплата админу...
Что то мне подсказывает, что иного решения просто не будет...