Это мой первый вопрос, поэтому дайте мне знать, если я что-то не так делаю!
Я создаю приложение для Android с Eclipse и читаю QR-коды с помощью считывателя штрих-кодов.Это все работает просто отлично, однако, иногда есть «особый случай» штрих-кодов, которые содержат «вознаграждение» для пользователя.
Это «вознаграждение» содержится в специально отформатированной строке, эта строка МОЖЕТ быть подделанас людьми, которые намерены обмануть систему.Это не большая проблема, но я предпринял шаги, чтобы предотвратить это, теперь мой вопрос ... Насколько безопасны эти шаги?
Вот два примера строк:
***Code-v1.0:31c8f90a4050:1001:0:C:1337
***Code-v1.0:6a9c4e8d92da:1002:C4D23A1B:C:1337
Строки отформатированы следующим образом:
***Code-v1.0:HASH:CODE_ID:REDEEM_ONCE:CODE_ACTION:ARG
(REDEEM_ONCE has 3 possible values)
Моя система хеширования работает следующим образом:
salt = "************:***"; // didnt think it wise to post this, but the length is
// the same and its alphanumeric
MD5 = salt . ":" . codeParts[2] . codeParts[5] . codeParts[4] . ":" . codeParts[3] . ":";
MD5 .= codeParts[4] . codeParts[3] . ":" . codeParts[5] . codeParts[2];
Это безопасный способ сделать это, код не может быть подделанбез влияния на хеш, но, конечно, хэши могут столкнуться, и если кто-то разработал схему хеширования, все это становится бессмысленным (это немного меньше, чем просто «найти» его, поскольку он находится на стороне сервера, но если кто-то выяснит).
Что ты думаешь?