Как сгенерировать уникальный ключ API и секретный ключ в Java

Я хочу создать уникальный ключ API и секретный ключ и сопоставить каждую из этой пары с уникальными проектами в базе данных. Итак, мне нужна функция для создания уникальной пары ключей.

Как сгенерировать уникальный ключ API и секретный ключ в Java / базе данных?


person Kenshin    schedule 30.11.2015    source источник
comment
Вы пробовали Guid (в java это будет: UUID)?   -  person mikus    schedule 30.11.2015
comment
что вы думаете, говоря секретный ключ? Что ты хочешь с этим делать? (кому принадлежит ключ, кто умеет кодировать, декодировать и т. д.)?   -  person guillaume girod-vitouchkina    schedule 30.11.2015
comment
Если вы видите такие API рекламной сети, как Chartboost, Vungle, AdMob и т. Д. Как только вы создадите приложение на их портале, вам будет предоставлен ключ API и секретный ключ. Я хочу воспроизвести эту функцию   -  person Kenshin    schedule 30.11.2015
comment
тогда вы можете смотреть на что-то вроде RSA, пары открытых + закрытых ключей довольно хорошо известны и описывают механизм шифрования и аутентификации :)   -  person mikus    schedule 30.11.2015
comment
Я хочу связать уникальную пару ключей (ключ api и секрет) с каждым проектом в моей базе данных. Используя это, каждый клиент может аутентифицировать URL-адрес REST, используя аутентификацию с открытым / закрытым ключом ...   -  person Kenshin    schedule 30.11.2015


Ответы (1)


Я не изучал возможности Charboost, вопрос не в этом.

Я только понимаю, что вы получите какой-то секретный / открытый ключ (например, этот сайт использует подпись), а затем асимметричную пару ключей. После вы делаете то, что хотите.

Для этой довольно общей цели я предлагаю использовать RSA, хорошо реализованный на Java (существуют другие алгоритмы).

см. это сообщение: Сгенерируйте пару ключей RSA и закодируйте приватную как строку < / а>

открытый ключ =>

KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA");
    keyGen.initialize(512);
    byte[] publicKey = keyGen.genKeyPair().getPublic().getEncoded();

закрытый ключ =>

byte[] privateKey = keyGen.generateKeyPair().getPrivate().getEncoded();
person guillaume girod-vitouchkina    schedule 30.11.2015
comment
будет ли это каждый раз давать мне уникальный ключ? - person Kenshin; 30.11.2015
comment
есть ли какой-нибудь документ, в котором говорится, что KeyPairGen .... дает уникальный ключ на протяжении всего срока службы? - person Kenshin; 30.11.2015
comment
безопасно ли использовать последовательность, сгенерированную базой данных, для создания уникальной пары ключей? - person Kenshin; 30.11.2015
comment
обычно генерируются разные ключи, но зависит от реализации (использует время, информационную систему и т. д.). Единственный способ получить псевдоистинную случайность - использовать специализированное оборудование. последовательность создания базы данных или другое программное обеспечение имеют те же риски. - person guillaume girod-vitouchkina; 30.11.2015