MD5: Różnice pomiędzy wersjami
[wersja przejrzana] | [wersja nieprzejrzana] |
Usunięta treść Dodana treść
→Kod źródłowy: merytoryczna: rzutowanie nie jest potrzebne; typedef to nie makro i też nie jest potrzebny |
→Kod źródłowy: merytoryczne: nazwy zmiennych bardziej intuicyjne, poprawiony błąd (argumenty FF, GG, HH, II) |
||
Linia 87:
Kod na podstawie RFC 1321 (RSA Data Security, Inc.).
W poniższym kodzie <tt>h0</tt>, <tt>h1</tt>, <tt>h2</tt>, <tt>h3</tt> oznaczają tymczasowe wartości funkcji skrótu, natomiast <tt>a</tt>, <tt>b</tt>, <tt>c</tt> i <tt>d</tt> oznaczają rejestry
Inicjowanie:
<source lang="c">
</source>
Linia 148:
Transformacja bloku (<tt>x[i]</tt> to kolejne 32-bitowe fragmenty aktualnego bloku, w porządku [[Kolejność bajtów|little endian]]):
<source lang="c">
/* Cykl 1 */
Linia 225:
II(b, c, d, a, x[ 9], S44, 0xeb86d391); /* 64 */
</source>
Wynik to wartości kolejnych rejestrów w porządku [[Kolejność bajtów|little endian]]:
<source lang="c">
printf("%08X%08X%08X%08X",
</source>
|