Jest to kod używam do „hash” (lub czerpać kluczową jak nazywa się w realizacji PBKDF2 standardu PKCS) haseł struny z klasą Rfc2898DeriveBytes przewidzianego w NET:znaczenie podstawowych wielkości w Rfc2898DeriveBytes (PBKDF2) realizacja
int saltSize = 256;
int iterations = 1000;
int keySize = 20; // The parameter I'm not sure of
var deriveBytes = new Rfc2898DeriveBytes("mypassword", saltSize, iterations);
byte[] salt = deriveBytes.Salt;
byte[] key = deriveBytes.GetBytes(keySize);
teraz rozumiem, że rozmiar sól nie ma większego znaczenia (o ile to wystarczy, aby upewnić się, że losowe sole będzie wyjątkowy), ale co rozmiar klucza? Czy dłuższy klucz zapewnia większe bezpieczeństwo przed atakami?
(Uwaga:
1. Sprawy wydajności nie przywozili tu na mnie, to jest oczywiste, że dłuższy sól lub dłuższy klucz zajmie więcej czasu dla GetBytes
zwrócić wartość
2. Chcę używać. ten "hash" do przechowywania ich w bazie danych, aby nie używać ich później w schemacie szyfrowania)
dkLen ma długość w oktetów kluczowych pochodzi, liczbą dodatnią, co najwyżej 16 do MD2 lub MD5 i 20 dla SHA-1 – jdweng