SHA-512 - jak używać?

0

Witam,
Robię pewien program, który będzie bazował na kontach użytkowników. Do tego potrzebuję hashowania haseł. Wybrałem SHA-512 i pobrałem kod z następujących stron:

http://www.koders.com/cpp/fid419FBC01E2B4D58DF83973D2B16F4AEED4D4122E.aspx - sha512.h
http://www.koders.com/cpp/fidA07610299621086095801A64FED8E570E1AA0185.aspx - sha512.cpp
http://www.koders.com/cpp/fid2E300AC995F2EDC6C632E3A295DCC9FF235773A1.aspx - threadcomm.h

Następnie nasunął się problem - jak tego używać? Która funkcja hashuje i jakie podać do niej parametry?
Prawdopodobnie jest to funkcja:
[sha512.cpp] sha512_transform (uint64_t *state, const uint8_t *input)
Jednak nie umiem jej poprawnie wywołać. Jakie to są zmienne typu uint64_t i uint8_t?

Dziękuję za pomoc.

0

SHA-512 nie nadaję się do hashowania haseł, użyj bcrypta http://www.openwall.com/crypt/. Pamiętaj o tym, żeby sól była unikalna dla każdego użytkownika i będzie bezpieczne, w bcrypcie wybierz największe ustawienia, które nie powodują za długiego czasu sprawdzania hasła.

Crypto++ posiada też parę funkcji do bezpiecznego pozyskiwania hashy z hasła, np. http://www.cryptopp.com/docs/ref/class_p_k_c_s12___p_b_k_d_f.html .

0

może i bcrypt lepszy, ale jeżeli jest on przeznaczony dla całych plików to jak mam go użyć dla pojedynczych ciągów znaków?

0

w porządku, ale do Crypto++ mam to samo pytanie: jak używać? jest jakaś dokumentacja po polsku? z angielskiego nie umiem przekładać języka programistycznego, a google translator czasami typy zmiennych zamienia nie mówiąc o gramatyce...

1

z angielskiego nie umiem przekładać języka programistycznego, a google translator czasami typy zmiennych zamienia nie mówiąc o gramatyce...

To powodzenia gdy przejdziesz do czegoś bardziej zaawansowanego, bo tam znaleźć angielski tutorial będzie trudno.

1

zaglądasz do pliku nagłówkowego i patrzysz na sekcję public
masz tam aże 5 funkcji do wyboru:

	static bool selfTest();

	string calcSha384(const string &buf);
	string calcSha384(const string &filename, int *commSocket);

	string calcSha512(const string &buf);
	string calcSha512(const string &filename, int *commSocket);

z mega tajemniczymi parametrami
którą by tu wybrać? oczywiście że sha512_transform (uint64_t *state, const uint8_t *input)!

1 użytkowników online, w tym zalogowanych: 0, gości: 1