Szukam przechowywania niektórych poufnych danych w aplikacji, nad którą pracuję. Przeglądam klasę ProtectedData
dostarczoną przez firmę Microsoft i wygląda to całkiem prosto. Mam jednak kilka pytań dotyczących tego, jak to działa.Czy ProtectedData działa na wielu komputerach?
Po pierwsze, widzę, że używa "danych logowania użytkownika" do wygenerowania klucza szyfrowania. Widziałem w dokumentacji, że tylko bieżący użytkownik będzie mógł odszyfrować dane. To nie jest problem, chcę tylko wiedzieć, czy ten sam użytkownik jest zalogowany na innej maszynie, czy będzie w stanie odszyfrować dane? Planuję udostępnianie zapisanych informacji w usłudze OneDrive, więc mam nadzieję, że będzie dostępna na każdym urządzeniu, z którego korzysta ten sam użytkownik.
ex:
User A logs in on desktop computer, saves encrypted file abc.txt
User A then logs in on tablet, loads file abc.txt
Czy abc.txt
dostępne użytkownikowi na tablecie?
Po drugie, co się stanie, gdy użytkownik zmieni swoje hasło? Wydaje mi się, że klucz szyfrowania byłby wtedy inny i czyżby to nie uniemożliwiło odszyfrowania danych, które wykorzystywały poprzedni klucz szyfrowania?
ex:
User A logs in on desktop computer, saves encrypted file abc.txt
User A changes password
User A logs in on desktop computer, loads file abc.txt
Czy abc.txt
dostępne użytkownikowi już ??
myślę może to więcej sensu dla moich celów użyć czegoś podobnego 'RijndaelManaged zamiast tego. Przynajmniej coś, co nie jest bezpośrednio związane z konkretnym użytkownikiem. Pytanie pozostaje jednak nadal, czy 'ProtectedData' działa na wielu stacjach roboczych z tym samym zalogowanym użytkownikiem? –
Powiedziałbym, że 'ProtectedData' naprawdę nie jest przeznaczony do używania na wielu komputerach. to bardziej dotyczy ochrony danych "w pamięci". Musisz użyć dobrej usługi Crypto dla szyfrowania, które chcesz wysłać przez przewód. i wątpię, czy zadziała nad wieloma. maszyny, ponieważ to nie jest .NET - używa DPAPI. –