Estoy trabajando en un proyecto en el que el desarrollador inicial decidió que sería una buena idea disfrazar las claves de API mediante la combinación de ellas junto con el minuto actual, y otorgarles a los clientes tres ventana de minutos para enviar ese valor.
Así lo hace el cliente:
headers.authKey = md5(ACTUAL_API_KEY + current_minute())
Y el servidor hace:
// allow for one-minute-late and one-minute-early hashes
for (i in [-1, 0, 1]) :
if headers.authKey == md5(ACTUAL_API_KEY + (current_minute()+i))
valid = true
Esto me parece un teatro de seguridad. Supongo que podría considerar la idea de que disfrazar el valor "por el cable" podría ser una buena idea, pero no estoy seguro de que exista un beneficio práctico real para eso, y parece que podría estar complicando las cosas más que necesitan ser También ... md5.