Задать вопрос

Хранение криптованных данных в БД, (де)криптование на клиенте

Есть данные, которые хранятся в MySQL и html-страница, в которой происходит просмотр и редактирование данных посредством JS+AJAX. Нужно реорганизовать схему таким образом, чтобы данные хранимые в БД были «нечитаемы», а«читаемы» были только по ключу на «клиенте». Желательно не отходить от MySQL/PHP на сервере и JS+AJAX на клиенте.

Интересует направление в котором рыть: идеология, технологии…
Спасибо.
  • Вопрос задан
  • 2642 просмотра
Подписаться 5 Оценить Комментировать
Ответ пользователя Ajex К ответам на вопрос (4)
@Ajex
Вообще вы по-моему изобретаете какой-то велосипед.
«данные будут читаться по ключу на js» какой в этом смысл? делаете стандартную авторизацию пользователей. Далее на уровне пхп в зависимости от уровня доступа выбираете нужные данные.

Для реализации же вашей схему будет как-то так:
Выбираете любой алгоритм, две функции из которого (encode,decode) можно будет реализовать на пхп и js. Далее перед вставкой данные кодируете, а при запросе раскодируете.

Вообще непонятно зачем это надо и что от кого а на какой стороне нужно спрятать. Можно было бы больше советов дать.

Например Функцию раскодирования можно написать прямо в mysql (если у вас свой сервер или есть доступ к хранимым процедурам).
Тогда выборка будет вида select decode(text,key) from table…
key можно передавать при GET/POST запросе, но в таком случае клиенту полетят уже расшифрованные данные. Если боитесь перехвата, опять-таки есть https.

Если уж очень хочется расшифровывать на js ajax вам в помощь.
Берете любой фреймворк, например jQuery, там есть функция $.ajax
Код будет выглядеть как-то так (пишу с головы могут быть ошибки):
<script>
function my_decode(data,key)
{
//Тут будет алгоритм декодирования
}
function LoadData()
{
$.ajax({
  url: 'ajax.php?OrderNo=5',
  success: function(data) {
    $('.result').html(my_decode(data,key));
  }
});
}
</script>
<a href="javascript: void(0);" onclick="LoadData()">Показать данные</a>
<div id="result">Сюда выведутся данные</div>

Вот что произойдет. По нажатию на ссылку произойдет ajax запрос, который вызовет скрипт, который сделает выборку данных из базы. Затем после успешного вызова данные расшифруются на стороне клиента и в загрузятся расшифрованные данные.
Дело за выбором алгоритма шифрования
Ответ написан