Domanda

Come si vede nella RFC2289 (S / KEY), c'è una lista di parole che deve essere utilizzato quando si converte la stringa esadecimale in un formato leggibile.

Come potrei fare per farlo?

Il RFC cita:

  

La password one-time è quindi   convertito, e accettato come un   sequenza di sei brevi (da 1 a 4 lettera)   Parole inglesi. Ogni parola è scelta   da un dizionario di 2048 parole; alle 11   bit per parola, tutte le password di una volta   possono essere codificati.

     

Per saperne di più:    http://www.faqs.org/rfcs/rfc1760.html#ixzz0fu7QvXfe

Questo significa convertire un esagono in decimale e quindi usando come un indice per un array di parole. L'altra cosa che potrebbe essere utilizza una codifica di testo ad esempio 1111 potenza pari cane in UTF-8 encoding

grazie in anticipo per il vostro aiuto!

È stato utile?

Soluzione

Non c'è bisogno di convertire in decimale. Se il valore esadecimale è una stringa, basta convertirlo in un numero (ad esempio, con Integer.valueOf(value, 16)). Quindi utilizzare questo numero per cercare la parola. Se è possibile memorizzare l'intero dizionario nella memoria, utilizzare il numero di come l'indice. Se non è possibile memorizzare nella memoria, usarlo per controllare quanto lontano nel file dizionario si guarda (se ogni elemento si trova su una riga separata, letto che molte linee nel file). Se hai un database da qualche parte, utilizzare il numero come chiave della tabella e selezionare con il tasto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top