رفتن به مطلب

رمز گذاری اطلاعات با کتابخانه B4XEncryption


mohsen m

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

سلام وقت همگی بخیر

یکی از مواردی که در ذخیره اطلاعات مهم و ضروری هست حفاظت از اطلاعات کاربران در داخل دیتابیس و ... هست مثل پسورد و ... . 

تو سایت مرجع درباره این موضوع بسیار صحبت شده و انواع کتابخانه ها و روشها برای این کار ارائه شده و شما میتونید با جستجوی کلماتی مانند: 

LockBox3 , AES Encryption , hash_url , Base64 , encode_decode , RSA Encrypt , Decrypt , Cipher , encrypted , encryption , RandomAccessFile , B4XEncryption , BCrypt , ByteConverter , hash , EncodeBase64  مطالب بسیاری را در این زمینه مطالعه بفرمایید.

اما

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

خب اول این کتابخانه را فعال کنید و دو تابع زیر را بنویسید:

Sub EncryptText(text As String, password As String) As Byte()
	Dim c As B4XCipher
	Return c.Encrypt(text.GetBytes("utf8"), password)
End Sub

Sub DecryptText(EncryptedData() As Byte, password As String) As String
	Dim c As B4XCipher
	Dim b() As Byte = c.Decrypt(EncryptedData, password)
	Return BytesToString(b, 0, b.Length, "utf8")
End Sub

تابع اول اطلاعات را رمز گذاری میکنه و تابع دوم رمز گشایی.

حالا هر جا خواستید داده را رمز گذاری کنید از کد زیر استفاده کنید:

Dim pass As String= "Answercenter.ir"
	
Dim EncryptedData() As Byte = EncryptText(pass, "12345abCDEF") 'گرفتن مقدار ورودی
	
Dim ss As String=BytesToString(EncryptedData,0, EncryptedData.Length, "utf8") 'رمز گذاری داده
LogColor(ss, Colors.Green)

در بالا ما مقدار pass را به تابع دادیم برای رمزگذاری .

مقدار دوم این تابع که 12345abCDEF نوشته شده و به نام پسورد است در اصل مقداری هست که شما میتوانید بنا بر سلیقه خود در داده pass که قرار است رمزگذاری شود ترکیب کنید در نتیجه تغییرات اساسی در کد گذاری داده دریافتی ایجاد میکند که ناخوانایی داده رمزگذاری شده را بیشتر میکند. 

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

...

و اما موضوع بعد. وقتی داده ای را رمزگذاری میکنید خوانا و قابل درک نیست و برای استفاده از آن باید مجدد آنرا به حالت اولیه خود باز گردانید. مثال میخواهید به کاربر پسوردش را نمایش دهید! مثلا :biggrin:

Dim dd As String=DecryptText(EncryptedData, "12345abCDEF") 'رمز گشایی داده
LogColor(dd, Colors.Yellow)

با کد بالا که داخل یک متغییر بنام dd قرار دادیم شما داده رمزگذاری شده را با استفاده از تابع DecryptText مجدد به حالت اولیه برمیگردانید.

توجه داشته باشید مقدار 12345abCDEF باید با مقداری که در زمان رمزگذاری استفاده کردید یکی باشد وگرنه برنامه خطا میدهد چراکه دادهها با هم همخوانی نخواهند داشت.

 

کل کد:

Sub Activity_Create(FirstTime As Boolean)
	
	Dim pass As String= "Answercenter.ir"
	
	Dim EncryptedData() As Byte = EncryptText(pass, "PassWord1234") 'گرفتن مقدار ورودی
	
	Dim ss As String=BytesToString(EncryptedData,0, EncryptedData.Length, "utf8") 'رمز گذاری داده
	LogColor(ss, Colors.Green)
	


	Dim dd As String=DecryptText(EncryptedData, "PassWord1234") 'رمز گشایی داده
	LogColor(dd, Colors.Yellow)

End Sub


Sub EncryptText(text As String, password As String) As Byte()
	Dim c As B4XCipher
	Return c.Encrypt(text.GetBytes("utf8"), password)
End Sub

Sub DecryptText(EncryptedData() As Byte, password As String) As String
	Dim c As B4XCipher
	Dim b() As Byte = c.Decrypt(EncryptedData, password)
	Return BytesToString(b, 0, b.Length, "utf8")
End Sub

لینک این موضوع در سایت مرجع

موفق باشید :good2:

 

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

بایگانی شده

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

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

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

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