Какую простую хэш-функцию можно реализовать в VkScript?

VKScript – очень урезанная версия JavaScript, выполняемая на серверах ВКонтакте при вызове метода API execute(). Поддерживаются, цитирую:
  • арифметические операции
  • логические операции
  • создание массивов и списков ([X,Y])
  • parseInt и parseDouble
  • конкатенация (+)
  • конструкция if
  • фильтр массива по параметру (@.)
  • вызовы методов API, параметр length
  • циклы, используя оператор while
  • методы Javascript: slice, push, pop, shift, unshift, splice, substr
  • оператор delete
  • присваивания элементам маcсива, например: row.user.action = "test";

И не более 25 вызовов методов ВКонтакте API. Количество раундов в циклах тоже ограничено. Т.е. очень и очень урезанный язык.

Нужно защитить некий параметр, передаваемый через клиента, от подделки. Было бы просто великолепно, если бы я мог в этом скрипте проверять какое-то подобие цифровой подписи. Т.е. у себя на сервере я бы вычислял некий хэш от параметра, а в этом скрипте проверял его.

Вопрос: какую хэш-подобную функцию можно реализовать в VKScript, и как?
  • Вопрос задан
  • 608 просмотров
Решения вопроса 1
zagayevskiy
@zagayevskiy
Android developer at Yandex
Было бы просто великолепно, если бы я мог в этом скрипте проверять какое-то подобие цифровой подписи. Т.е. у себя на сервере я бы вычислял некий хэш от параметра, а в этом скрипте проверял его.
Это не цифровая подпись, это security through obscurity. Для цифровой подписи необходимо ассиметричное шифрование.

По-моему, вы практически любую хэш-фукнцию можете реализовать с этим набором методом. Если логические операции включают в себя битовые. А если не включают - можно реализовать их через арифметические. Из простеньких что-то возьмите, MD5, например. Или вообще CRC32.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы