You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: _drafts/2019-08-05-sharedpreferences.md
+35Lines changed: 35 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -160,4 +160,39 @@ class DataStore : PreferenceDataStore {
160
160
//log operation
161
161
}
162
162
}
163
+
{% endhighlight %}
164
+
165
+
## Bezpieczeństwo
166
+
Biblioteka `Security` dostarcza dodatkowej ochrony przed niepowołanym dostępem do danych stosując się do kryptograficznych reguł bezpieczeństwa z jednoczesnym zachowaniem wydajności. Wykorzystuje dwuczęściowy system zarządzania kluczami składający się ze zbioru kluczy `keyset` oraz z klucza głównego `master key`. `Keyset` zawiera klucze szyfrujące dane, które są przechowywane w `SharedPreferences`, natomiast `master key` jest kluczem szyfrującym klucze z `keyset` i przechowywany jest w `KeyStore`. Dostęp do zaszyfrowanych `SharedPreferences` odbywa się przez instancję `EncryptedSharedPreferences`.
167
+
168
+
{% highlight kotlin %}
169
+
class EncryptedActivity : AppCompatActivity() {
170
+
171
+
override fun onCreate(savedInstanceState: Bundle?) {
172
+
super.onCreate(savedInstanceState)
173
+
174
+
val encryptedSharedPref = createEncryptedSharedPref()
Copy file name to clipboardExpand all lines: _drafts/2019-08-12-storage.md
+56Lines changed: 56 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -234,4 +234,60 @@ class LruCacheActivity : AppCompatActivity() {
234
234
return value
235
235
}
236
236
}
237
+
{% endhighlight %}
238
+
239
+
## Bezpieczeństwo
240
+
Przechowywanie danych na urządzeniu jest narażone na niepowołany dostęp nawet w prywatnej lokalizacji plików. Podstawowym sposobem zachowania bezpieczeństwa jest zastosowanie szyfrów kryptograficznych dzięki czemu pomimo uzyskania dostępu zawartość pliku pozostanie zakodowana. Biblioteka `Security` ułatwia to zadanie poprzez dostarczenie gotowego mechanizmu szyfrowania opartego o dwuczęściowy system zarządzania kluczami, gdzie klucze szyfrujące są również zaszyfrowane przez klucz główny znajdujący się w `KeyStore`. Klasa `EncryptedFile` dostarcza bezpieczną implementację dla `FileInputStream` i `FileOutputStream`.
241
+
242
+
{% highlight kotlin %}
243
+
class EncryptedActivity : AppCompatActivity() {
244
+
245
+
override fun onCreate(savedInstanceState: Bundle?) {
246
+
super.onCreate(savedInstanceState)
247
+
writeEncrypt()
248
+
readEncrypt()
249
+
250
+
//file is encrypted so reading in standard way returns encrypted content
0 commit comments