OOZOU
تواصلوا معنا
العودة إلى المدونة

طريقة سهلة لتأمين بياناتكم الحساسة في Android

إليكم طريقة سهلة لتأمين بياناتكم الحساسة في Android

31 أغسطس 2020
6 دقائق للقراءة
طريقة سهلة لتأمين بياناتكم الحساسة في Android

عند بناء تطبيقات Android، يُعد التخزين الآمن للبيانات الحساسة مثل بيانات اعتماد المستخدم ورموز PIN والـ tokens أمرًا بالغ الأهمية. تقليديًا، تُستخدم SharedPreferences في Android لتخزين أزواج المفتاح والقيمة (key-value pairs) البسيطة، لكن البيانات المخزنة في SharedPreferences غير مشفرة افتراضيًا. وهذا يمثل خطرًا أمنيًا محتملًا على البيانات الحساسة المخزنة في التطبيق.

لحسن الحظ، تتيح Encrypted Shared Preferences في Android للمطوّرين تشفير البيانات المخزنة في SharedPreferences، فتوفر طريقة آمنة لتخزين المعلومات الحساسة. وتتوفر ميزة Encrypted Shared Preferences هذه عبر مكتبة Android Security، ما يسهّل حماية البيانات المخزنة على الجهاز.

في هذا المقال، سنستعرض كيفية تطبيق Encrypted Shared Preferences في Android، باستخدام مكتبة Security لحماية المفاتيح والقيم في SharedPreferences. سنغطي كل شيء، من إعداد التشفير إلى كيفية تخزين البيانات بطريقة آمنة، ونوضح طريقة عمل ذلك من خلال أمثلة برمجية.

ما هي Encrypted Shared Preferences في Android؟

Encrypted Shared Preferences طريقة آمنة لتخزين أزواج المفتاح والقيمة في Android باستخدام تشفير AES-256. وهذه الميزة جزء من مكتبة Android Security، وتضمن أن البيانات المخزنة في SharedPreferences مشفرة سواء أثناء التخزين أو في الذاكرة. وعند استخدام Encrypted Shared Preferences، تُشفَّر المفاتيح والقيم معًا في SharedPreferences، ما يمنع الوصول غير المصرح به إلى البيانات.

لماذا نستخدم Encrypted Shared Preferences؟

  • حماية البيانات الحساسة: مع Encrypted Shared Preferences يمكنكم تخزين البيانات الحساسة مثل كلمات المرور والـ tokens وتفضيلات المستخدم بأمان.
  • سهولة التطبيق: تجعل مكتبة Android Security تشفير البيانات أمرًا بسيطًا من دون الحاجة إلى منطق تشفير مخصص.
  • مخزن مفاتيح مدعوم بالعتاد (Hardware-Backed Keystore): في الأجهزة الحديثة، يمكن لـ Encrypted Shared Preferences الاستفادة من مخزن المفاتيح المدعوم بالعتاد في الجهاز، ما يوفر أمانًا أقوى.

كيفية استخدام Encrypted Shared Preferences في Android

لتبدأوا باستخدام Encrypted Shared Preferences، عليكم إعداد مكتبة Android Security في مشروعكم. إليكم الطريقة خطوة بخطوة.

الخطوة 1: إضافة التبعيات (Dependencies)

أضيفوا اعتمادية مكتبة Security إلى وحدة التطبيق (app module) في ملف build.gradle:

groovy
implementation 'androidx.security:security-crypto:1.1.0-alpha02'

توفر هذه المكتبة الأدوات اللازمة لتشفير البيانات في SharedPreferences وفي الملفات.

الخطوة 2: تهيئة المفتاح الرئيسي (Master Key)

قبل أن نستخدم Encrypted Shared Preferences، علينا إنشاء MasterKey. يُستخدم هذا المفتاح لتشفير البيانات وفك تشفيرها في SharedPreferences.

kotlin
val masterKey = MasterKey.Builder(applicationContext)
    .setKeyScheme(MasterKey.KeyScheme.AES256_GCM)
    .build()

يخزّن Android الـ MasterKey تلقائيًا بشكل آمن، وغالبًا في مخزن المفاتيح المدعوم بالعتاد، بحسب إمكانات الجهاز.

الخطوة 3: إنشاء Encrypted Shared Preferences

بعد ذلك، سننشئ نسخة (instance) من EncryptedSharedPreferences. يتيح لكم هذا الصنف تخزين أزواج المفتاح والقيمة بصيغة مشفرة.

kotlin
val sharedPreferences = EncryptedSharedPreferences.create(
    applicationContext,
    "encrypted_prefs",  // File name for SharedPreferences
    masterKey,          // Master key for encryption
    EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV,
    EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM
)
  • "encrypted_prefs": اسم الملف الذي ستُخزَّن فيه البيانات المشفرة.
  • AES256_SIV: مخطط التشفير الخاص بالمفاتيح.
  • AES256_GCM: مخطط التشفير الخاص بالقيم.الخطوة 4: تخزين البيانات واسترجاعها

بعد تهيئة Encrypted Shared Preferences، يمكنكم تخزين البيانات واسترجاعها بالطريقة نفسها التي تتبعونها مع SharedPreferences العادية، لكن البيانات المخزنة في الملف ستكون الآن مشفرة.

تخزين البيانات:

kotlin
sharedPreferences.edit().putString("USER_PIN", "123456").apply()

استرجاع البيانات:

kotlin
val userPin = sharedPreferences.getString("USER_PIN", null)

في هذه الحالة، يُخزَّن USER_PIN بأمان في Encrypted Shared Preferences. تُشفَّر البيانات قبل حفظها، ويُفك تشفيرها تلقائيًا عند استرجاعها.

الخطوة 5: عرض البيانات المشفرة

إليكم شكل البيانات المخزنة في ملف SharedPreferences مشفر:

xml
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
    <string name="__androidx_security_crypto_encrypted_prefs_key_keyset__">Encrypted...</string>
    <string name="__androidx_security_crypto_encrypted_prefs_value_keyset__">Encrypted...</string>
    <string name="ASN3dd30XLWQ87WqUN7/2k86i9gqavinCOsSI/Z9PHtW">Encrypted...</string>
</map>

كما ترون، المفاتيح والقيم مشفرة، ما يضمن أنه حتى لو تمكن شخص ما من الوصول إلى الملف، فلن يستطيع قراءة البيانات الحساسة.

فوائد استخدام Encrypted Shared Preferences

  1. أمان البيانات

يضمن استخدام Encrypted Shared Preferences تخزين البيانات الحساسة مثل كلمات المرور وتفضيلات المستخدم والـ tokens بأمان. ويحدث التشفير تلقائيًا، ما يقلل خطر كشف البيانات.

  1. سهولة التطبيق

تبسّط مكتبة Android Security عملية إضافة التشفير إلى تطبيقكم. ويمكنكم دمجها في مشروعكم بسرعة من دون الحاجة إلى منطق تشفير معقد.

  1. التوافق

تدعم المكتبة Android 6.0 (API 23) وما بعده، ما يجعلها متوافقة مع معظم أجهزة Android الحديثة.

  1. تشفير مدعوم بالعتاد

في الأجهزة التي تدعمه، يضيف مخزن المفاتيح المدعوم بالعتاد طبقة أمان إضافية، إذ يضمن تخزين مفاتيح التشفير بأمان في العتاد وحمايتها من العبث.

  1. حماية المفاتيح والقيم معًا

على عكس بعض أساليب التشفير التي تشفّر القيم فقط، تشفّر Encrypted Shared Preferences المفاتيح والقيم معًا، ما يوفر حماية متكاملة لبيانات تطبيقكم.

الخلاصة: أسهل طريقة لتأمين البيانات في Android

تناولنا في هذا المقال كيفية استخدام Encrypted Shared Preferences في Android لتخزين البيانات الحساسة بأمان، مثل رموز PIN والـ tokens وتفضيلات المستخدم. وببضعة أسطر من الكود فقط، يمكنكم دمج مكتبة Android Security في تطبيقكم، لتحصلوا على طريقة متينة لتخزين البيانات المشفرة.

إنها طريقة سهلة وفعالة لحماية بيانات مستخدميكم، ومع نضج مكتبة Android Security ستستمر في تقديم ميزات أمان أقوى. ويُعد تطبيق Encrypted Shared Preferences خطوة أساسية نحو جعل تطبيقات Android أكثر أمانًا وحماية البيانات المخزنة فيها من الوصول غير المصرح به.

الأسئلة الشائعة

**1. ما هي Encrypted Shared Preferences في Android؟**تتيح لكم Encrypted Shared Preferences تخزين أزواج المفتاح والقيمة في SharedPreferences بأمان، عبر تشفير المفاتيح والقيم معًا باستخدام تشفير AES-256.

**2. كيف أطبّق Encrypted Shared Preferences؟**لتطبيق Encrypted Shared Preferences، عليكم استخدام مكتبة Android Security، وإنشاء MasterKey، ثم استخدام EncryptedSharedPreferences لتخزين البيانات واسترجاعها بأمان.

**3. هل يمكنني استخدام Encrypted Shared Preferences في إصدارات Android الأقدم؟**نعم، تدعم المكتبة Android 6.0 (API 23) وما بعده. وفي الأجهزة التي تعمل بإصدارات Android أقدم، يُستخدم التشفير البرمجي (software-based encryption).

**4. ما الفرق بين تخزين البيانات في Encrypted Shared Preferences وفي Shared Preferences العادية؟**في SharedPreferences العادية تُخزَّن البيانات كنص صريح (plaintext)، بينما في Encrypted Shared Preferences تُشفَّر المفاتيح والقيم معًا، ما يوفر أمانًا معززًا للبيانات الحساسة.

5. ما خوارزميات التشفير التي تستخدمها Encrypted Shared Preferences؟EncryptedSharedPreferences تستخدم AES-256 SIV لتشفير المفاتيح وAES-256 GCM** لتشفير القيم.

**6. هل التشفير في Encrypted Shared Preferences مدعوم بالعتاد؟**في الأجهزة التي تدعم ذلك، يُخزَّن MasterKey الذي تستخدمه EncryptedSharedPreferences في مخزن مفاتيح مدعوم بالعتاد، ما يوفر أمانًا إضافيًا بحماية مفاتيح التشفير في العتاد.

باستخدام Encrypted Shared Preferences، يمكنكم تأمين البيانات الحساسة في تطبيقات Android، وضمان تخزين معلومات المستخدمين بأمان تام.

Related Articles

كيف أصمّم برمجيات؟ دليل المبتدئين لأصحاب الأعمال

كيف أصمّم برمجيات؟ دليل المبتدئين لأصحاب الأعمال

تصميم البرمجيات عملية ممتعة لكنها معقدة، تتطلب الإبداع والتفكير المنطقي ومهارات حل المشكلات.

اقرأوا المزيد
مستقبل الحوسبة الطرفية: ما تحتاج الشركات إلى معرفته

مستقبل الحوسبة الطرفية: ما تحتاج الشركات إلى معرفته

يتطور المشهد الرقمي بسرعة، وعلى الشركات أن تتكيّف لتواكب الطلب المتزايد على السرعة والكفاءة والمعالجة في الوقت الفعلي.

اقرأوا المزيد
مستقبل قطاع التجزئة: الذكاء الاصطناعي والواقع المعزّز واتجاهات التحوّل الرقمي

مستقبل قطاع التجزئة: الذكاء الاصطناعي والواقع المعزّز واتجاهات التحوّل الرقمي

يتطور قطاع التجزئة بوتيرة غير مسبوقة بفضل الذكاء الاصطناعي (AI) والواقع المعزّز (AR) وتقنيات التحوّل الرقمي. فلم تعد المتاجر التقليدية مجرد أماكن لبيع المنتجات، بل أصبحت متاجر ذكية وتفاعلية.

اقرأوا المزيد

Have a Project in Mind?

Let's discuss how we can help bring your ideas to life with our expertise in web and mobile development.

ابدأوا المحادثةhello@oozou.com
OOZOU Logo

بانكوك · سنغافورة · هونغ كونغ

X
Facebook
Instagram
LinkedIn
OOZOU Co., Ltd.
548 One City Centre
Ploenchit Road
Bangkok 10330
Thailand
+66 2544 0000
hello@oozou.com

الخدمات

  • تطوير الويب
  • وكلاء الذكاء الاصطناعي والذكاء الاصطناعي التوليدي
  • تطوير تطبيقات الجوال
  • تحليلات البيانات وهندستها
  • تصميم تجربة المستخدم وواجهته (UX/UI) وتصميم المنتجات
  • التحوّل الرقمي

الشركة

  • من نحن
  • الوظائف
  • المدونة
  • دراسات الحالة
  • عروض حية
  • تعلّمت اليوم
  • تواصل معنا

المزيد

  • القطاعات
  • شبكة الشركاء
© 2026 OOZOU. جميع الحقوق محفوظة.
سياسة الخصوصيةمدونة قواعد السلوكسياسة مكافحة الرشوة والفساد