ключ HMAC и длина соли - PullRequest
       49

ключ HMAC и длина соли

2 голосов
/ 10 мая 2011

Я использую hmac sha1 для подписания идентификатора пользователя, который передается стороннему сервису.Один и тот же секрет используется для всех пользователей, а соль уникальна для каждого пользователя.

token = userid : timestamp+2hours : hmac(userid : timestamp+2hours, salt+secret)
token_hex = hex(hash)

Будет ли hmac работать для коротких строк?userid: timestamp может быть например 12: 1304985212 Имеет ли порядок соль и секретные вопросы?(соль + секрет против секрета + соль) Какова должна быть общая длина секрета и какая должна быть длина соли?Могу ли я использовать тот же секрет для подписи сообщений между сервером и удаленной службой или лучше создать отдельный секрет?

Спасибо

1 Ответ

2 голосов
/ 10 мая 2011

Вы должны вычислить hmac (соль: идентификатор пользователя: метка времени + 2 часа, секрет) и передать соль: идентификатор пользователя: метка времени + 2 часа: хеш.Цель соли - сделать текст открытым и длинным, а не повторяющимся, поэтому его лучше добавлять к тексту, а не к секрету.

Если вы действительно хотите изменить секрет, выполните команду hmac (userid: timestamp + 2hours, hash (salt): secret)), это сделает одноразовый секрет похожим на случайное число.

...