Buongiorno,
avrei bisogno di un consiglio per implementare l'algoritmo SHA1 in Java.
Prendo come esempio la String "ciao"
Il primo step è questo:
decodififare una String in bit (o byte)
Da "ciao" ottengo
"c" = 99 = 01100011
"i" = 105 = 01101001
"a"= 97 = 01100001
"o" = 111 = 01111001
Questa è la rappresentazione decimale e binaria dei caratteri della String "ciao".
Dovrei ora, a partire dal carattere "c" fino al carattere "o", dovrei "affiancare" le sequenze di bit ottenute.
Dunque ottenere questo:
01100011 01101001 01100001 01111001
Cioè. per quanto riguarda la parola "ciao", una sequenza di 32 bit.
A questo punto, devo
a) inserire un bit 1 a destra della sequenza per ottenere:
01100011 01101001 01100001 01111001 1
Come posso riuscirci?
Nel senso: inserire un bit = 1 a destra di una sequenza di bit corrisponde ad effettuare uno shift a destra di una posizione e aggiungere 1.
Di seguito però dovrei aggiungere alla sequenza ottenuta un numero di bit = 0 tali che il numero totale di bit della sequenza ottenuta risulti uguale a
448 mod 512...![]()
Se ho capito a livello pratico a cosa corrispondono queste operazioni, non so con che tipo di dati operare:
un int in java corrisponde a 32 bit, un long, se non ricordo male, a 64 bit.
Io qui devo lavorare con blocchi lunghi 512 bit... o 164 byte fate vobis.
Come mi conviene operare per dati come questi?

Rispondi quotando