رفتن به مطلب

🔐 امنیت در b4a ( قسمت پنجم )


MR.B4A

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

do.php?imgf=org-0349bff5e8ad1.jpg

برای دریافت سورس و کتابخانه های موردنیاز b4a، در کانال ما عضو شوید
کانال هرروز یا یک روز درمیون با سورس های رایگان b4a بروزرسانی میشود
https://t.me/programmingwithb4a
https://splus.ir/basic4android_langueg
https://eitaa.com/basic4androidlan

🔐 امنیت در b4a ( قسمت پنجم )

#️⃣ رمزگذاری یا Encryption

*️⃣ رمزگذاری (Encryption) یعنی تبدیل اطلاعات از حالت قابل خواندن (مثل متن ساده) به حالتی غیرقابل خواندن، به‌طوری که فقط افراد مجاز با داشتن "کلید رمزگشایی" بتوانند دوباره آن اطلاعات را بخوانند.

☑️ در برنامه‌نویسی، از رمزگذاری استفاده می‌کنیم تا:
اطلاعات حساس (مثل رمز عبور، شماره کارت، پیام‌ها و...) در امان باشند،
جلوی دسترسی غیرمجاز گرفته شود،
امنیت اپلیکیشن بالا بره.

©️ مثلاً اگه کاربر یه رمز عبور وارد کنه، ما اون رو رمزگذاری می‌کنیم تا اگه کسی به دیتابیس یا فایل‌ها دسترسی پیدا کرد، نتونه رمز رو ببینه!

™️ در B4A می‌تونیم از الگوریتم‌هایی مثل AES، Base64 یا MD5 برای رمزگذاری استفاده کنیم.

1️⃣ رمزگذاری و رمزگشایی با Base64 در B4A

Sub Activity_Create(FirstTime As Boolean)
    Dim originalText As String = "سلام دنیا"
    
    ' تبدیل متن به آرایه بایت
    Dim data() As Byte = originalText.GetBytes("UTF8")
    
    ' رمزگذاری با Base64
    Dim encoded As String = su.EncodeBase64(data)
    Log("رمزگذاری شده: " & encoded)
    
    ' رمزگشایی
    Dim decodedBytes() As Byte = su.DecodeBase64(encoded)
    Dim decodedText As String = BytesToString(decodedBytes, 0, decodedBytes.Length, "UTF8")
    Log("رمزگشایی شده: " & decodedText)
End Sub

EncodeBase64: داده‌ها رو رمزگذاری می‌کنه به رشته‌ای از کاراکترهای قابل انتقال.

DecodeBase64: همون داده‌ها رو برمی‌گردونه به حالت اصلی.

مناسب برای ارسال داده در اینترنت یا ذخیره‌سازی ساده.

نکته: Base64 رمزگذاری واقعی امنیتی نیست! فقط داده‌ها رو به شکل خوانا و فشرده‌تر درمیاره. برای امنیت واقعی باید از الگوریتم‌هایی مثل AES استفاده کنی.

2️⃣ مثال: رمزگذاری و رمزگشایی با AES در B4A

Sub Activity_Create(FirstTime As Boolean)
    Dim key As String = "1234567890123456" ' کلید باید دقیقاً 16 بایت باشه
    Dim iv As String = "abcdefghijklmnop"  ' مقدار اولیه (Initial Vector) هم باید 16 بایت باشه
    Dim originalText As String = "سلام دنیا"

    ' رمزگذاری
    Dim encrypted() As Byte = AES_Encrypt(originalText, key, iv)
    Dim encryptedBase64 As String = su.EncodeBase64(encrypted)
    Log("متن رمزگذاری شده (Base64): " & encryptedBase64)

    ' رمزگشایی
    Dim decrypted() As Byte = AES_Decrypt(su.DecodeBase64(encryptedBase64), key, iv)
    Dim decryptedText As String = BytesToString(decrypted, 0, decrypted.Length, "UTF8")
    Log("متن رمزگشایی شده: " & decryptedText)
End Sub

' تابع رمزگذاری با AES
Private Sub AES_Encrypt(Text As String, Key As String, IV As String) As Byte()
    Dim c As B4XCipher
    Return c.Encrypt(Text.GetBytes("UTF8"), Key.GetBytes("UTF8"), IV.GetBytes("UTF8"))
End Sub

' تابع رمزگشایی با AES
Private Sub AES_Decrypt(Data() As Byte, Key As String, IV As String) As Byte()
    Dim c As B4XCipher
    Return c.Decrypt(Data, Key.GetBytes("UTF8"), IV.GetBytes("UTF8"))
End Sub

کلید (Key) و IV باید دقیقاً 16 بایت (کاراکتر) باشن.
از کلاس B4XCipher استفاده شده که برای AES طراحی شده.
خروجی رمزگذاری رو با Base64 ذخیره کردیم که خواناتر و قابل انتقال باشه.

نکته: برای استفاده از B4XCipher باید کتابخانه‌ی B4XEncryption رو به پروژه اضافه کنی. (از طریق Libs)

در ادامه مثالی ساده برای تولید هش MD5 در B4A رو برات می‌نویسم. MD5 برای رمزگذاری یک‌طرفه استفاده می‌شه، یعنی نمی‌شه اون رو برگردوند به حالت اصلی — بیشتر برای بررسی صحت داده یا ذخیره رمز عبور استفاده می‌شه.

Sub Activity_Create(FirstTime As Boolean)
    Dim text As String = "mypassword"
    Dim md5Hash As String = GetMD5(text)
    Log("متن اصلی: " & text)
    Log("هش MD5: " & md5Hash)
End Sub

3️⃣' تابع ساخت هش MD5
Sub GetMD5(text As String) As String
    Dim md As MessageDigest
    md.Initialize("MD5")
    Return md.GetMessageDigest(text.GetBytes("UTF8"))
End Sub

MessageDigest یک کلاس داخلی در B4A هست که برای تولید هش‌هایی مثل MD5، SHA1 و SHA256 استفاده می‌شه.

هش MD5 همیشه 32 کاراکتر طول داره.

این نوع رمزگذاری یک‌طرفه هست؛ یعنی نمی‌تونی اون رو رمزگشایی کنی.

نکته: MD5 امروزه دیگه خیلی امن نیست برای کارهایی مثل رمز عبور — بهتره از SHA-256 استفاده کنی برای امنیت بیشتر.

تهیه و تنظیم   
مرتضی صباغی  
MR.B4A
 
🛑 محصولات 
MR.B4A
ضبط صدا
https://zarinp.al/602356
ابزارهای انیمیشنی
https://zarinp.al/582228
کتاب پیشرفته
https://zarinp.al/581211
کیوآرکد اسکنر
https://zarinp.al/724103
قاب عکس
https://zarinp.al/725250
سورس دفترچه یادداشت
https://zarinp.al/725935
تقویم شمسی
https://zarinp.al/726030
مودم ( کتاب پیشرفته آفلاین )
https://zarinp.al/727010
عکس به پی دی اف
https://zarinp.al/727356
پکیج آنلاین
https://zarinp.al/728862
آهنگ پیشواز
https://zarinp.al/729276

🌕 درصورت خرید هر سورس، داخل تلگرام و یا واتس اپ و یا ایتا رسید پول خود را بفرستید تا سورس به همراه کتابخانه برای شما ارسال شود.
واتس اپ
09377828985
تلگرام
@Morteza_b4a
ایتا
https://eitaa.com/mortezasabaghi

🛎️ اپلیکیشن ها
شماره ساز حرفه ای
https://cafebazaar.ir/app/ir.number.generator.mr.b4a
پروژت چه قدر می ارزه؟!
https://cafebazaar.ir/app/ir.project.cost.estimation.mr.b4a
 
#b4a #basic4android #source_code #programming #android #b4x #MR_B4A 
#secure_in_b4a

#بیسیک_فور_اندروید #سورس_کد #برنامه_نویسی #اندروید #امنیت_در_بیسیک_فور_اندروید

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

بایگانی شده

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

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

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