Witam. Obecnie męczę się nad stworzeniem funkcji szyfrującej i nawet takową z pomocą internetu udało mi się napisać. Jednakże mam kilka pytań odnośnie:
- IV
- Salt
- Key
Z tego co czytałem pierwsze dwa elementy mają dodać "losowości" do naszego szyfrowania, więc jak należy je generować, żeby później rozszyfrować np. stringa ?
Obecnie robię to w ten sposób, więc zapewne źle, aczkolwiek działa:
RMCrypto.Key = CreateKey(key);
RMCrypto.IV = CreateKey(key);
var encryptor = RMCrypto.CreateEncryptor(RMCrypto.Key, RMCrypto.IV);
private static byte[] CreateKey(string InputKey)
{
var key = new Rfc2898DeriveBytes(InputKey, saltBytes);
return key.GetBytes(16);
}
Kompletnie nie rozumiem idei działania tych dwóch pierwszych "mechanizmów", byłby ktoś na tyle miły, żeby mi to wytłumaczyć ?
Pozdrawiam :)