我正在使用 hmac sha1 对传递给第三方服务的用户 ID 进行签名。所有用户都使用相同的秘密,并且每个用户的盐都是唯一的。
token = userid : timestamp+2hours : hmac(userid : timestamp+2hours, salt+secret)
token_hex = hex(hash)
hmac 是否适用于短字符串?userid:timestamp 可以是例如 12:1304985212 盐和秘密的顺序重要吗?(salt+secret vs secret+salt) 共享密钥长度应该是多少,盐长度应该是多少?我可以使用相同的秘密来签署服务器和远程服务之间的消息,还是生成单独的秘密更好?
谢谢