Se è necessario generare una stringa/token per autenticare richieste future (ad esempio una chiave API, un URL di conferma dell'email, ecc.), Quali fattori dovrebbero essere considerati?Cosa rende una stringa/token crittograficamente sicura?
In particolare
- Ciò che rende la stringa "sicuro"/"molto difficile da indovinare"?
- Come viene misurata/stimata la "quantità di sicurezza"?
- Quali sono gli standard principali là fuori?
Un esempio pratico
Prendiamo queste due stringhe di output da NodeJS.
Stringa 1 (attraverso Node crypto)
var crypto = require('crypto');
crypto.randomBytes(48, function (ex, buf) {
console.log(buf.toString('hex'));
});
String 2 (attraverso Node UUID)
var uuid = require('node-uuid');
console.log(uuid.v4());
Sulla base dei concetti di cui sopra, che si sarebbe più sicuro e perché?
Inoltre, non esitate a suggerire qualsiasi buon materiale introduttivo sull'argomento, in quanto non ho potuto trovare facilmente articoli su questo online.
Penso che non ci sia una differenza per quanto riguarda i vostri dati e le finalità d'uso. – marekful
@marekful, grazie! Dove sto cercando di arrivare qui però è: come si può capire la differenza? – Pensierinmusica
Controlla questa pagina su [randomness cripto-forza] (http://www.cs.berkeley.edu/~daw/rnd/). –