رفتن به مطلب

امنیت 100% داده های اندروید با M_Secure_SharedPrefrence


ارسال‌های توصیه شده

سلام

آقای شاهپیری ببخشید دوباره مزاحم می شم :)

من قصد دارم اطلاعات خودم رو با این کتابخانه Encrypt کنم و بعد اون رو در دیتابیس ذخیره کنم. آیا امکان داره؟!

اگر امکان نداره بی زحمت کلاسش رو اضافه کنید. :53:

خیلی خیلی ممنون

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • پاسخ 44
  • ایجاد شده
  • آخرین پاسخ

فرقانی جان  این کتابخونه از sharedprefrence ایمپلمنت شده واطلاعاتش  تو فایل xml ذخیره میشه  :give_rose:

برای دیتابیس هم انشالا اگه زنده بودیم تا آخر هفته کتابخونشو میزارم که دیگه متن incrypt شده رو هر جایی که دوست داشت ذخیره کنه

لینک ارسال
به اشتراک گذاری در سایت های دیگر

 

دوست عزیز شما دوتا مساوی دیدین فکر میکنین به همین راحتیا میشه دیکد کرد؟؟ :fekr:  :girl_blush:

نخوندی توضیحاتو احتمالا عزیز اولا کدهای تولید شده بر اساس  پسوردی هست که ما میدیم ثانیا این پسورد به صورت RUNTIM هست یعنی تو دل کدهای تولی شده هست نه بکشون

در ضمن این کتابخونه ترکیبی از AES128 و CBC و PKCS5 و SHA 256 و base64  هستش تو گیت هاب میتونی نمونشو گیر بیاری

حالا اگه خیلی کنجکاوین بدونین هک میشه یانه کد زیر رو که با این کتابخونه تولید شده دیکد کنین و مقدار واقعیشو همینجا اعلام کنین خوشحال میشم ببینم واقعا باگ داره یا اینکه امنیتش در چه حد هست

w31CeqG4z2F8fdAP7wNiNg==:SzsJmT9ZjUcpI+lj0+KV4QVsfM/rfL6hkkEm/g7I1eI=:ayMNGwgyT9waDZlszyMwcA==

 

عزیزم اصلا sha و pkcs دیکرایپت نمیشه ، شما چجوری دیکرایپتش کردید ؟؟؟؟؟ :crazy: 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • 1 ماه بعد...
در در 1395/04/21, 11:48:23، محمدرضا شاهپیری گفته است :

فرقانی جان  این کتابخونه از sharedprefrence ایمپلمنت شده واطلاعاتش  تو فایل xml ذخیره میشه  :give_rose:

برای دیتابیس هم انشالا اگه زنده بودیم تا آخر هفته کتابخونشو میزارم که دیگه متن incrypt شده رو هر جایی که دوست داشت ذخیره کنه

سلام، ینی من از این کتابخونه استفاده کنم و یک مقداری رو ذخیره کنم اون مقداری که ذخیره میشه اینکریپت میشه و موقع دریافت مقدار دیکریپت میشه ومقدار اصلی رو برمیگردونه؟!درسته؟

فرقش با کتابخونه اقای شاهدی اینه که کتابخونه ایشون مقادیر رو داخل فایل تکست ذخیره میکنه و امنیت پایین داره اما کتابخونه شما از امنیت بالایی برخورداره و قابل ویرایش(هک)توسط کاربر نیست،درسته؟؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 6 دقیقه قبل، iavaduu گفته است :

سلام، ینی من از این کتابخونه استفاده کنم و یک مقداری رو ذخیره کنم اون مقداری که ذخیره میشه اینکریپت میشه و موقع دریافت مقدار دیکریپت میشه ومقدار اصلی رو برمیگردونه؟!درسته؟ بله همینطوره

فرقش با کتابخونه اقای شاهدی اینه که کتابخونه ایشون مقادیر رو داخل فایل تکست ذخیره میکنه و امنیت پایین داره اما کتابخونه شما از امنیت بالایی برخورداره و قابل ویرایش(هک)توسط کاربر نیست،درسته؟؟ عزیز هر کتابخونه ای قابلیتهای خودشو داره. ولی مهمترین تفاوت این کتابخونه با کتابخونه های دیگه اینه که از چندین روش رمزنگاری به صورت تلفیقی توش استفاده شده و امنیت اون به حد خیلی زیادی بال رفته

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام آقای شاهپیری موقع اینیشیالایز اونkey رو اگه باkeyای که موقع دریافت یا سیو یک مقدار وارد میکنیم یکسان باشه مشکلی پیش نمیاد؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 4 ساعت قبل، iavaduu گفته است :

سلام آقای شاهپیری موقع اینیشیالایز اونkey رو اگه باkeyای که موقع دریافت یا سیو یک مقدار وارد میکنیم یکسان باشه مشکلی پیش نمیاد؟

متوجه نمیشم منظورتون چیه. بیشتر توضیح بدین.

 

در 2 ساعت قبل، iavaduu گفته است :

ای کاش حتی بعد از حذف و نصب هم اطلاعات پایدار می موندن!

از این کتابخونه استفاده کنید و فایلها رو هرکجا دوست دارین ذخیره کنین

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 2 ساعت قبل، محمدرضا شاهپیری گفته است :

متوجه نمیشم منظورتون چیه. بیشتر توضیح بدین.

منظورم اینه که وقتی میخوایم همین کتابخونه تون M_Secure_SharedPrefrence  رو داخل پروژه اینیشیالایز کنیم یک keyمیخواد و همچنین موقعی که میخوایم مقداری رو دریافت یا سیو بکنیم اونجا هم یک پارامتر key میخواد آیا این دوتا باید یکسان باشن؟واگه یکسان نباشن مشکلی پیش نمیاد؟!

از این کتابخونه استفاده کنید و فایلها رو هرکجا دوست دارین ذخیره کنین

بنده هم اکنون از کتابخونه ششما استفاده میکنم برای ذخیره داده ها که بعد از حذف ونصب هم پایدار باشن شما چه محلی رو پیشنهاد میکنید؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در ۱ ساعت قبل، iavaduu گفته است :

از این کتابخونه استفاده کنید و فایلها رو هرکجا دوست دارین ذخیره کنین

بنده هم اکنون از کتابخونه ششما استفاده میکنم برای ذخیره داده ها که بعد از حذف ونصب هم پایدار باشن شما چه محلی رو پیشنهاد میکنید؟

فرقی نمیکنه عزیز شما هرجایی که بخواین میتونید ذخیره کنید چون داده ها به صورت اینکریپت هست و کسی نمیتونه از اونا استفاده کنه

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • 3 هفته بعد...
در در 1395/04/19, 03:56:25، محمدرضا شاهپیری گفته است :

:53:  :53: پوزش    پست ویرایش شد پسورد اختصاصی هم اضافه شد و مشکل لود نشدن اطلاعات بعد از بسته شدن و پاک نشدن کلید ها ی برنامه رفع شد :53:  :53: 

با سلام خدمت همه عزیزان انجمن کتابخونه ویژه ای که قولش رو داده بودم بالخره آماده شد :yahoo:  :yahoo:  :give_rose:

یکی از دغدغه های جدی بچه ها تو این اواخر دسترسی به داده هایی هست که از طریق sharedprefrence ذخیره میشن و واقعا هم یک معضل جدی علی رغم این همه کارایی و انعطاف هست

واسه همین تصمیم گرفتیم تا حد زیادی(تقریبا کامل :fekr: ) این مشکل را برطرف نماییم با این کتابخونه با خیال راحت هر نوع داده ای رو میتونین ذخیره کنین بدون اینکه کوچکترین گزندی بش برسه

تفاوت این روش با روش استاندارد رو تو دوتا عکس زیر میبینید 

ما اومدیم یه کلمه(answercenter) رو با هردو روش ذخیره کردیم البته با کلید mykey عکس اول با روش استاندارد اندروید و عکس دوم با این کتابخانه

از اونجایی که فایلها با پسوردی که ما دادیم generate میشه پس دیگه کدهای آماده یا الگوریتمهای تکراری نمیتونن رمزشونو پیدا کنن(یه رمز قوی بزارید) همه داده ها به صورت استرینگ ساخته میشه یعنی مشخص نیست چه نوع داده ای توی فایل ساختیه

خب سرتونو درد نیارم فقط نحوه استفاده میمونه که به شکل زیر هستش


Dim sh As M_Secure_SharedPrefrence
sh.initialize("yourpass")  ' دقت کنید حتما اینشیالایز بشه

sh.savesecurString("mykey","answercenter") '  ذخیره کردن داده

sh.getsecurString("mykey","yourdefaultvalue") '      گرفتن داده       



مقدار پیشفرضی که میخواین وارد کنید yourdefaultvalue به جای 

انشالا که از این کتابخونه استفاده لازم رو ببرید

پسند هم فراموش نشه :heart:

 

Capture.PNG

al.PNG

M_Secure_Shared_Prefrence.zip

سلام این 

yourdefaultvalue

کارش چیه ؟

چطور میشه ازش استفاده کرد؟

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در ۱ ساعت قبل، behimiri گفته است :

سلام این 


yourdefaultvalue

کارش چیه ؟

چطور میشه ازش استفاده کرد؟

 

متغیر هایی که واسه شیرد پرفرنس ذخیره میشه یه مقدار اولیه دارن و یه کلید

اینی که شما گفتی مقدار اولیه ش هستش که باید داشته باشه

مثلا اگه بولین باشه یا باید در حالت پیشفرض True باشه یا False

یا اگه استرینگ و int باشه و ... خلاصه حتما باید یه مقدار اولیه بهش تعلق بگیره

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در در 1396/02/20, 02:06:04، Gray Mind گفته است :

متغیر هایی که واسه شیرد پرفرنس ذخیره میشه یه مقدار اولیه دارن و یه کلید

اینی که شما گفتی مقدار اولیه ش هستش که باید داشته باشه

مثلا اگه بولین باشه یا باید در حالت پیشفرض True باشه یا False

یا اگه استرینگ و int باشه و ... خلاصه حتما باید یه مقدار اولیه بهش تعلق بگیره

خب اینجا 

sh.savesecurString("mykey","answercenter") '  ذخیره کردن داده

sh.getsecurString("mykey","yourdefaultvalue")

answercenter مقدار اولیه هست الان موقع گرفتن به جای yourdefaultvalue هرچی بدیم انگار تاثیری نداره 

مثل این

ms.savesecurString("key1","behzad")
	ToastMessageShow(ms.getsecurString("key1","yes"),True)

الان تست مسیج behzad رو نشون میده و کلمه "yes" هیچ تاثیری نداره ،میخواستم بدونم کاربردی نداره؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 54 دقیقه قبل، behimiri گفته است :

خب اینجا 


sh.savesecurString("mykey","answercenter") '  ذخیره کردن داده

sh.getsecurString("mykey","yourdefaultvalue")

answercenter مقدار اولیه هست الان موقع گرفتن به جای yourdefaultvalue هرچی بدیم انگار تاثیری نداره 

مثل این


ms.savesecurString("key1","behzad")
	ToastMessageShow(ms.getsecurString("key1","yes"),True)

الان تست مسیج behzad رو نشون میده و کلمه "yes" هیچ تاثیری نداره ،میخواستم بدونم کاربردی نداره؟

داداش اشتباه متوجه شدی

شما داری اول متغیر key1 رو ذخیره میکنی و مقدار بهزاد رو هم به عنوان مقدارش قرار دادی

اون مقدار پیشفرض برای موقعی هستش که شما برای اولین بار با استفاده از getsecurestring مقدارش رو میگیری اگه همچین متغیری وجود نداشته باشه میاد و اون مقدار پیشفرض یعنی "Yes" رو بر میگردونه

اما اگه قبلش شما بیای و مقداری رو براش ذخیره کنی اون مقدار ذخیره شده رو برمیگردونه که شما اینجا گذاشتی بهزاد

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در در 1396/02/20, 15:24:35، Gray Mind گفته است :

داداش اشتباه متوجه شدی

شما داری اول متغیر key1 رو ذخیره میکنی و مقدار بهزاد رو هم به عنوان مقدارش قرار دادی

اون مقدار پیشفرض برای موقعی هستش که شما برای اولین بار با استفاده از getsecurestring مقدارش رو میگیری اگه همچین متغیری وجود نداشته باشه میاد و اون مقدار پیشفرض یعنی "Yes" رو بر میگردونه

اما اگه قبلش شما بیای و مقداری رو براش ذخیره کنی اون مقدار ذخیره شده رو برمیگردونه که شما اینجا گذاشتی بهزاد

اینکه میگین  اگه همچین متغیری وجود نداشته باشه میاد و اون مقدار پیشفرض یعنی "Yes" رو بر میگردونه خب مگه میشه اون متغیر وجود نداشته باشه؟ چون ما اولش بهش مقدار دادیم دیگه 

یا  منظورتون اینه که اگه این دستور رو ms.DeleteSecureKey وارد کنیم اون مقدار behzad حذف میشه و "yes" رو نشون میده؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 3 دقیقه قبل، behimiri گفته است :

اینکه میگین  اگه همچین متغیری وجود نداشته باشه میاد و اون مقدار پیشفرض یعنی "Yes" رو بر میگردونه خب مگه میشه اون متغیر وجود نداشته باشه؟ چون ما اولش بهش مقدار دادیم دیگه 

یا  منظورتون اینه که اگه این دستور رو ms.DeleteSecureKey وارد کنیم اون مقدار behzad حذف میشه و "yes" رو نشون میده؟

ببین داداش 

SharedPreference یه کتابخانه هستش که میاد و یه مقدار رو در دیتای برنامه ذخیره میکنه خوب

این وسط شما میای و یه مقدار رو ذخیره میکنید پس اون متغیر وجود داره

اما اگه اول این متغیر رو ذخیره نکنید طبیعتا برنامه خطا میده درسته؟

کار این کتابخانه اینه که میاد و با استفاده از defultValue حتی اگه اون متغیر وجود نداشته باشه هم اون مقدار پیشفرض رو میخونه

یعنی شما نمیخواد حتما اون متغیر رو اول ذخیره کنید

میتونید اول مقدارش رو بخونید که همون مقدار پیشفرض رو میخونه

و بعدش مقدار دیگه ای رو ذخیره کنید و دفعه بعد که این متغیر رو خوند مقدار ذخیره شده رو میخونه

 

دیگه نمیدونم چجوری بگم .. امیدوارم فهمیده باشی

موفق باشی

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در در 1396/02/20, 15:38:31، Gray Mind گفته است :

ببین داداش 

SharedPreference یه کتابخانه هستش که میاد و یه مقدار رو در دیتای برنامه ذخیره میکنه خوب

این وسط شما میای و یه مقدار رو ذخیره میکنید پس اون متغیر وجود داره

اما اگه اول این متغیر رو ذخیره نکنید طبیعتا برنامه خطا میده درسته؟

کار این کتابخانه اینه که میاد و با استفاده از defultValue حتی اگه اون متغیر وجود نداشته باشه هم اون مقدار پیشفرض رو میخونه

یعنی شما نمیخواد حتما اون متغیر رو اول ذخیره کنید

میتونید اول مقدارش رو بخونید که همون مقدار پیشفرض رو میخونه

و بعدش مقدار دیگه ای رو ذخیره کنید و دفعه بعد که این متغیر رو خوند مقدار ذخیره شده رو میخونه

 

دیگه نمیدونم چجوری بگم .. امیدوارم فهمیده باشی

موفق باشی

اما اگه اول این متغیر رو ذخیره نکنید طبیعتا برنامه خطا میده درسته؟ بله همینطوره

فقط یه سوال

مثلا 

اگه بخوایم مقدار SpinerFont.SelectedItem اینو با این کتابخونه ذخیره کنیم  حتما باید یه فایل تکست ایجاد و اطلاعات رو اونجا بریزیم تا ذخیره بشه؟ یا اینکه نیازی نیست به ایجاد فایل تکست؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 10 دقیقه قبل، behimiri گفته است :

اما اگه اول این متغیر رو ذخیره نکنید طبیعتا برنامه خطا میده درسته؟ بله همینطوره

فقط یه سوال

مثلا 

اگه بخوایم مقدار SpinerFont.SelectedItem اینو با این کتابخونه ذخیره کنیم  حتما باید یه فایل تکست ایجاد و اطلاعات رو اونجا بریزیم تا ذخیره بشه؟ یا اینکه نیازی نیست به ایجاد فایل تکست؟

 منظورت اینه که ایتم انتخابی اسپینر رو ذخیره کنی؟

با همین کتابخانه ذخیره میکنی و نیازی به هیچ فایلی نیست

شما ذخیره میکنی تا زمانی ClearData و یا لغو نصب نشه برنامه این متغیر ذخیره شده هست و پاک نمیشه

هرجا نیاز داشتی میتونی با کلید ذخیره شده ت به اون متغیر دسترسی داشته باشی

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در در 1396/02/20, 16:03:05، Gray Mind گفته است :

 منظورت اینه که ایتم انتخابی اسپینر رو ذخیره کنی؟

با همین کتابخانه ذخیره میکنی و نیازی به هیچ فایلی نیست

شما ذخیره میکنی تا زمانی ClearData و یا لغو نصب نشه برنامه این متغیر ذخیره شده هست و پاک نمیشه

هرجا نیاز داشتی میتونی با کلید ذخیره شده ت به اون متغیر دسترسی داشته باشی

 منظورت اینه که ایتم انتخابی اسپینر رو ذخیره کنی؟ بله الان با این خط کد ذخیره میکنم

Sub SpninerFont_ItemClick (Position As Int, Value As Object)
	ms.savesecurString("key1",Value)
End Sub

خب حالا میخوام بعد از تنظیمات متن اینو(آیتم انتخاب شده اسپینر) اعمال کنم این دستور درسته؟

	Select ms.getsecurString("key1","yes")
		Case "فونت 1"
			lbl.Typeface = Typeface.LoadFromAssets("byekan.ttf")
		Case "فونت 2"
			lbl.Typeface = Typeface.LoadFromAssets("timesbd.ttf")
		Case "فونت 3"
			lbl.Typeface = Typeface.LoadFromAssets("bhoma.ttf")
	End Select

 

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • 3 ماه بعد...

چطور میتونیم از این کتابخونه شرطی استفاده کنیم  برای پرداخت درون برنامه ای ؟ کدش رو بدید لطفا .ممنون

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.

×
×
  • اضافه کردن...