|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#21 |
|
Junior Member
Iscritto dal: Sep 2011
Messaggi: 24
|
risposta da parte di fcorbelli
risposta di fcorbelli:
-------------------------------------------------------------------------------------------- Il ciclo più esterno dura quanti chunk da 512 bit è lungo il messaggio (dopo il padding) Se il messaggio è di 1Kbyte, il ciclo sarà eseguito due volte, perchè in ogni elaborazione (ciclo interno) viene considerato un "pezzetto" di 512 bit. Tutta la struttura di md5 è orientato ai bit, non ai byte. la funzione lefrotate è definita leftrotate (x, c) return (x << c) binary or (x >> (32-c)); in sostanza è un SHL (shift-left), ovvero sposta verso sinistra tanti bit quanti sono specificati ad esempio x = a << 2 significa che x=4a
__________________
๑۩۞XsecretX۞۩๑ Mai discutere con un idiota, ti trascina al suo livello e ti batte con l'esperienza.
|
|
|
|
|
|
#22 |
|
Junior Member
Iscritto dal: Sep 2011
Messaggi: 24
|
ma quindi se il messaggio fosse: "a", quindi 1byte(8 bit), effettua solo 1 ciclo esterno?
inoltre non mi è ancora del tutto chiaro il leftrotate. Grazie ancora. =)
__________________
๑۩۞XsecretX۞۩๑ Mai discutere con un idiota, ti trascina al suo livello e ti batte con l'esperienza.
|
|
|
|
|
|
#23 |
|
Junior Member
Iscritto dal: Sep 2011
Messaggi: 24
|
risposta di fcorbelli
risposta da parte fcorbelli:
----------------------------------------------------------------------------------------- > ma quindi se il messaggio fosse: "a", quindi 1byte(8 bit), effettua > solo 1 ciclo esterno? > Sì, ma il messaggio non sarebbe di un byte. Sarebbe in realtà di 512 bit, ove gli ultimi 64 (bit) conterrebbero il numero binario 8 (che è la lunghezza in bit del messaggio, attenzione che come detto md5 "pensa" in bit) > inoltre non mi è ancora del tutto chiaro il leftrotate. > > Grazie ancora. =) Sono funzioni tipiche del linguaggio macchina, sono spostamenti a destra e sinistra (con o senza riporto) di registri binari. Avvengono molto velocemente mediante istruzioni-macchina specializzate In sostanza dato un certo numero binario memorizzato "da qualche parte" (in realtà un registro della CPU o una cella di memoria), uno SHIFT sinistro "sposta" la definizione binaria verso sinistra, appendendo uno 0 Esempio: numero binario 11001 (25 decimale9 se faccio uno SHIFT sinistro di una posizione ottengo 110010 dove ho aggiunto a destra uno zero, equivalente a fare un 25*2 (e infatti vale 50 in decimale) Se faccio uno SHIFT sinistro di due posizioni avrò 1100100 che è 100 in decimale Discorso analogo per gli shift destri (solo invertiti, sono divisioni per potenze di due). --- La ROTAZIONE è come uno spostamento, ma il bit più significativo che "sborderebbe" viene appeso in coda. Se abbiamo un numero contenuto in un byte (per semplicità) 11111111 (255) e faccio uno shift sinistro, cosa succede? diventerebbe 11111110 la il primo uno, quello più a sinistra, "sparirebbe". Con una rotazione lo piglio e lo "accodo" a destra, nel bit meno significativo. In pratica è come avere un qualcosa che fa "scorrere" i bit a sinistra (o destra) per poi far rientrare quelli che "uscirebbero" (non so se si capisce), è una sorta di "rimescola-le-carte"
__________________
๑۩۞XsecretX۞۩๑ Mai discutere con un idiota, ti trascina al suo livello e ti batte con l'esperienza.
|
|
|
|
|
|
#24 |
|
Junior Member
Iscritto dal: Sep 2011
Messaggi: 24
|
Devo ammettere che le sue spiegazione sono molto esaustive =).
ora l'ultimo passo: var char digest[16] := h0 append h1 append h2 append h3 //(expressed as little-endian) mi sembra di capire che cui h0, h1, h2, h3, vengano concatenati, e salvati dove?, in digest[16], un array di tipo char?
__________________
๑۩۞XsecretX۞۩๑ Mai discutere con un idiota, ti trascina al suo livello e ti batte con l'esperienza.
|
|
|
|
|
|
#25 | ||
|
Moderatore
Iscritto dal: Jun 2007
Città: 127.0.0.1
Messaggi: 25885
|
Quote:
Quote:
__________________
Try again and you will be luckier.
Ultima modifica di Chill-Out : 21-06-2012 alle 11:56. |
||
|
|
|
|
|
#26 |
|
Junior Member
Iscritto dal: Sep 2011
Messaggi: 24
|
mi scusi Chill-Out, non capisco cosa centri la violazione della privacy, comunque io ho pubblicato le risposte che mi ha mandato fcorbelli, per il semplice fatto, che magari queste materiale potrebbe tornare utile anche ad altre persone.
Dal momento che lei è un moderatore, certamente il suo primo compito è quello di far rispettare il regolamento del forum, ma penso che non si dovrebbe dimenticare che in quanto lei è un moderatore, dovrebbe in primo luogo pensare anche ad un ampliamento dei contenuti del forum stesso, che è quello che ho fatto.
__________________
๑۩۞XsecretX۞۩๑ Mai discutere con un idiota, ti trascina al suo livello e ti batte con l'esperienza.
|
|
|
|
|
|
#27 | ||
|
Moderatore
Iscritto dal: Jun 2007
Città: 127.0.0.1
Messaggi: 25885
|
Quote:
8. PVT: Messaggi privati Quote:
I contenuti si ampliano applicando le corrette modalità, che non sono certo queste.
__________________
Try again and you will be luckier.
|
||
|
|
|
|
|
#28 | ||
|
Junior Member
Iscritto dal: Sep 2011
Messaggi: 24
|
Quote:
Quote:
__________________
๑۩۞XsecretX۞۩๑ Mai discutere con un idiota, ti trascina al suo livello e ti batte con l'esperienza.
|
||
|
|
|
|
|
#29 | |
|
Moderatore
Iscritto dal: Jun 2007
Città: 127.0.0.1
Messaggi: 25885
|
Quote:
Mi ripeto http://www.hwupgrade.it/forum/showpo...9&postcount=25 che tradotto in parole povere, se sei sospeso non puoi postare e tu non puoi farlo per lui, argomento chiuso.
__________________
Try again and you will be luckier.
Ultima modifica di Chill-Out : 21-06-2012 alle 12:45. |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 04:22.




















