2015-07-25 5 views
1

Я пытаюсь создать игру, которая будет привязана к содержимому веб-сайта, а учетные записи пользователей будут совместно использоваться на сайте несколькими версиями клиента.Солирование и хеширование паролей, совместимость с Java и PHP

Проблема заключается в том, что пароль должен быть солью хэшированной в PHP, и мне нужно, чтобы иметь возможность проверить через Java, и я не могу найти какую-либо информации о безопасном cryptos (как PBKDF2) и обеспечение того, чтобы поколение идентичен между PHP и Java.

Я видел некоторую информацию об использовании PBKDF2 на PHP ИЛИ Hmac с SHA-1, но не совмещая их, как предложено в названии в Java «PBKDF2WithHmacSHA1». Теперь у меня есть ручка для индивидуального хеширования для PHP или Java.

Как настроить методы для создания соли и хэша на PHP, сохранить его в MySQL и проверить пароли через функции хэширования Java?

Предпочитаете придерживаться PBKDF2, если это вообще возможно (если кто-то не может предложить эквивалент, который лучше подходит для кросс-совместимости).

P.S. Не особенно уверен, что это заслуживает того, чтобы быть здесь или на Crypto SE. Я подумал, что, поскольку я спрашивал об определенных языках, я сначала попробую.

ответ

0

Итак, оказалось, что это было не так сложно, как я думал. Я нашел this question, который сказал, что PHP эквивалент был функцией hash_pbkdf2 с алгоритмом sha1. Оттуда речь шла только о передаче salt и hash от PHP до Java. Вот как это получилось:

1) PHP: Для этого я просто скопировал функцию pbkdf2 этого парня и создал соль и хеш, как и он.

2) Java: Все, что должно было произойти, было небольшим изменением в преобразовании байт-кода, и все получилось просто отлично.

После этого, все, что мне нужно было сделать изменения Java кода, чтобы вписаться в моей/установку клиента-сервера (в том числе вторичного сеанса хеширования), и разработать несколько больше ошибок окружающих больше salt и hash кодирования и декодирование через сетевую передачу , и теперь он отлично работает.

Немного более подробный ответ доступен по этому другому вопросу.

0

Постарайтесь рассмотреть возможность использования встроенного управления пользователями и паролями, например JBoss KeyCloak. Он основан на таких стандартах, как OAuth2 и OpenID Connect, а также такие вещи, как сброс пароля, регистрация пользователей и социальный вход. Он включает в себя коннекторы для Java и JavaScript. Видимо, connectors for PHP.

Смежные вопросы