El requisito es que deseamos generar un montón de claves, y necesitamos una forma de validar si esta clave la generamos nosotros. Mi sugerencia es generar un UUID, hacer que un HMAC use una clave secreta en el UUID, entonces el resultado de UUID + HMAC debería ser la clave. El problema aquí es que UUID + HMAC es demasiado largo, por lo que podemos usar solo una parte de ellos como clave.
Mientras tanto, mi colega sugiere que otra forma es generar un UUID, hacer un AES en él, usar los datos cifrados como una clave, piensa que los datos cifrados no pueden ser falsificados, pero me temo que no es una forma segura . Como no hacemos ninguna otra validación aquí.
Entonces, la pregunta es: ¿es posible falsificar datos encriptados AES, que pueden ser descifrados por una clave secreta dada? Si no es posible falsificar datos encriptados AES, ¿cuál deberíamos usar? HMAC o AES?
Se debe considerar el rendimiento, ya que tenemos alrededor de mil millones de solicitudes para gestionar todos los días.