Vuoi che il tuo server sia in grado di decodificare i dati e nessun altro. Pertanto, il tuo server deve "sapere" qualcosa che le altre persone non sanno e che "qualcosa" è ciò che i crittografi chiamano una chiave.
Tuttavia, non è necessario che tale chiave sia specifica per l'utente. Può essere una chiave a livello di server. Con crittografia simmetrica , la chiave per crittografare e la chiave per decodificare sono le stesse; questo funzionerà per te se il tuo server è anche il sistema che esegue la crittografia (poiché i valori dei cookie sono impostati dal server, suppongo che questa sia la tua situazione).
Alcune note:
-
Anche tu vuoi integrità. Nel tuo sistema, l'utente è un potenziale aggressore. Il cookie è sulla sua macchina, quindi potrebbe provare a modificarlo. La crittografia gli impedirà di conoscere il contenuto, ma potrebbe comunque fare delle "ipotesi" e alterarlo. La crittografia non garantisce l'integrità da sola.
-
La combinazione di crittografia e integrità non è così semplice come sembra. Vedi questa domanda per la teoria e i puntatori su l'argomento.
-
La chiave a livello di server è informazione sensibile; gestirlo in modo sensato In particolare, non si desidera inviarlo a tutti i backup (perché i nastri oi dischi di backup smarriti / rubati sono un classico meccanismo di perdita), ma non si vuole perdere neanche.