PasswordDeriveBytes //AES co robi ?

0
   PasswordDeriveBytes pdb = new PasswordDeriveBytes(Password, 
            new byte[] {0x49, 0x76, 0x61, 0x6e, 0x20, 0x4d, 
            0x65, 0x64, 0x76, 0x65, 0x64, 0x65, 0x76}); 

        Rijndael alg = Rijndael.Create(); 
        alg.Key = pdb.GetBytes(32); 
        alg.IV = pdb.GetBytes(16);
 

Witam
Chciałem się was zapytać co dzieje się w tym kawałku kodu - używam go do tworzenia IV i klucza do algorytmu AES. Rozumiem, że PasswordDeriveBytes tworzy z hasła w stringu(Password) i tablicy bytów właśnie IV oraz klucz. Mam pytanie jak odbywa się proces solenia tego naszego hasła? Solą w naszym przypadku jest new byte[] {0x49, 0x76, 0x61, 0x6e, 0x20, 0x4d, 0x65, 0x64, 0x76, 0x65, 0x64, 0x65, 0x76}. W deszyfrowaniu w takim razie muszę podać tę samą tablice byte[] żeby odszyfrować hasło?
Jeszcze chciałem się spytać co to są te 0x20, 0x4d, 0x65 w byte[] ? To jest zapis w tablicy 13 pozycji, jakiś dowolnych bajtów - w naszy przypadku 0x20 itp ?

Podsumowując ktoś żeby odszyfrować musi znać nie tylko hasło ale też całą tablice byte[] {0x49, 0x76, 0x61, 0x6e, 0x20, 0x4d, 0x65, 0x64, 0x76, 0x65, 0x64, 0x65, 0x76} ?

0

to jest password based encryption, aby szyfrowac i deszyfrowac obie strony musza znac haslo + tablice bajtow, ktora podales, ktora powinna byc wypelniona w sposob losowy

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