2016-01-03 3 views
0

Мы должны генерировать ключевой хеш из хранилища ключей и регистрировать его в консоли разработчика facebook. Я хочу понять концепцию ключевого хеша.Использование хэша ключа Facebook?

Какие преимущества он предоставляет для сервера/клиента?

Мы часто видим Неверный хэш-ключ ошибка (т.е. хэш-ключ «***» не соответствует ни сохраненных ключей хешей) .so

Как мое приложение знает правильный ключ хэша потому что я не храню его в любом xml или где-то еще?

Будут оценены любые материалы или мысли.

+0

проверить мой инструмент для окон и osx здесь http://stackoverflow.com/questions/4388992/key-hash-for-android-facebook-app/17732453#17732453 – Shahar

ответ

0

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

Мы можем легко найти хэш-код сертификата следующим кодом:

try { 
     PackageInfo info = getPackageManager().getPackageInfo(
       "com.facebook.samples.hellofacebook", 
       PackageManager.GET_SIGNATURES); 
     for (Signature signature : info.signatures) { 
      MessageDigest md = MessageDigest.getInstance("SHA"); 
      md.update(signature.toByteArray()); 
      Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT)); 
      } 
    } catch (NameNotFoundException e) { 

    } catch (NoSuchAlgorithmException e) { 

    } 

Выше мы используем SHA (Secure Hash Algorithm) для создания хэш-код сертификата.

SHA (Secure Hash Algorithm) - это алгоритм обработки сообщений, который принимает входное сообщение любой длины и выдает 160-битный вывод в качестве дайджест сообщения. SHA называется безопасным, потому что невозможно вычислить сообщение, соответствующее данному дайджесту сообщения, или найти два разных сообщения, которые создают один и тот же дайджест сообщений.

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

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