Il requisito è che vogliamo generare un mucchio di chiavi e abbiamo bisogno di un modo per convalidare se questa chiave è generata da noi. Il mio suggerimento è quello di generare un UUID, fare un HMAC utilizzare una chiave segreta sull'UUID, quindi il risultato UUID + HMAC dovrebbe essere la chiave. Il problema qui è UUID + HMAC è troppo lungo, quindi possiamo usare solo una parte di essi come chiave.
Nel frattempo, il mio collega suggerisce che un altro modo è generare un UUID, fare un AES su di esso, utilizzare i dati crittografati come chiave, pensa che i dati crittografati non possano essere falsificati, ma temo che questo non sia un modo sicuro . Poiché non facciamo altre convalide qui.
Quindi la domanda è: è possibile simulare un dato crittografato con AES, che può essere decodificato da una determinata chiave segreta? Se non è possibile falsificare un dato crittografato con AES, quale si dovrebbe usare? HMAC o AES?
Le prestazioni dovrebbero essere considerate, perché abbiamo circa 1 miliardo di richieste da gestire ogni giorno.