Cos’è un token nella programmazione?

Ti sono già state indicate diverse definizioni, ma ne aggiungerò altre.

In alcuni protocolli di sicurezza, una parte vuole essere sicura che l'altra parte sia "live", invece di essere un impostore che "riproduce" una parte di una sessione precedente. Gli attacchi di replay sono generalmente effettuati da utenti non autorizzati, riproducendo sessioni di utenti legittimi per cercare di imitarli. Quindi, il primo lato invia un numero casuale o una stringa, e si suppone che l'altro lo riproduca a pappagallo, così com'è o (in modo più sicuro) dopo aver eseguito qualche tipo di trasformazione su di esso, preferibilmente richiedendo qualche segreto che l'altro lato dovrebbe avere. Sia l'oggetto originale che l'oggetto trasformato sono talvolta chiamati token. Tuttavia, questo causa confusione con i token crittografici fisici (come i portachiavi RSA), che generalmente usano un algoritmo basato sul tempo per determinare quale dovrebbe essere la risposta corretta e mostrarla ad un umano per digitarla. Quindi, in questo senso, si usano spesso altri termini, come nonce o challenge per l'originale, e semplicemente response o answer per la versione trasformata.

Poi c'è il computer networking. Certo, non è esattamente programmazione, ma qualcuno deve programmare come funziona la rete, quindi c'è una sovrapposizione. Uno stile di controllo del flusso di rete, ora generalmente considerato obsoleto, è chiamato "token ring". Piuttosto che la configurazione "bus" o "a stella" più comune con Ethernet e simili in questi giorni, un token ring era organizzato in, sorpresa sorpresa, una formazione ad anello. Ogni stazione poteva "parlare" solo quando "aveva" il "token", che era essenzialmente solo un accordo tra le stazioni su chi lo aveva. (È passato così tanto tempo da quando l'ho guardato, che non sono sicuro se ci doveva essere una stazione "master" per designare l'attuale detentore del token o cosa). Al termine (o dopo un certo limite), "passava" il token alla stazione successiva lungo l'anello (in una direzione definita). Questo potrebbe essere ciò a cui R. Drew Davis si riferiva, ma mi sembrava che lo facesse associare ai dati piuttosto che alla stazione, quindi molto probabilmente è qualcos'altro.

Come potete vedere, è una di quelle molte parole con un enorme numero di definizioni. Si potrebbe pensare che, almeno in inglese, che ha così tante parole, potremmo rendere i significati più unici... ma questo rovinerebbe tante buone battute.... 😉